我在mysql server数据库中有一个名为mytbl的表。有一个日期列prod_date,其中包含格式为2019-xx-xx的2019年的所有日期。
我需要从Jan 2019 to May 2019中提取所有行。我的以下代码没有返回任何内容。
SELECT *
FROM mytbl
WHERE prod_date BETWEEN CONCAT('2019', '-', '01') AND CONCAT('2019', '-', '05')有人能说出我做错了什么吗?如何只按年和月选择日期?
在此之前非常感谢。
发布于 2019-12-30 15:34:17
这应该会给你一个结果。
SELECT * from mytbl WHERE Year(prod_date) = 2019 and Month(prod_date) BETWEEN 1 and 5发布于 2019-12-30 15:20:33
您不需要使用concat(),只需执行以下操作:
where prod_date >= '2019-01-01' and prod_date <= '2019-05-31'这里假设prod_date具有YYYY-MM-DD格式。
发布于 2019-12-30 15:26:32
如果您的日期格式为'YYYY-MM-DD‘,您可以选择两个日期之间的行。如果您有其他格式,您可以更改格式和查询。
SELECT `mytbl`.* FROM `mytbl` where `prod_date` BETWEEN '2019-01-01' AND '2019-05-31'https://stackoverflow.com/questions/59527074
复制相似问题