我在表格中有一列名为“日期”。在此列中,有一些日期存储在不同月份。我想只显示月份为“10”的日期。我们如何使用mysql的substring()函数编写查询来打印所需的输出?或者其他任何解决方案?
O / p:此列中的前8条记录。
答案 0 :(得分:2)
MySQL有很多处理日期的选项。在这种情况下,将MONTH()
函数与STR_TO_DATE()
相结合将是最简单的; MONTH()
将日期作为输入并返回月份编号,从1开始为1月,而STR_TO_DATE()
将您的(非标准)日期字符串格式化为MySQL理解的日期。
您的查询将成为:
SELECT * FROM your_table WHERE MONTH(STR_TO_DATE(`date`, '%d-%m-%Y')) = 10;
答案 1 :(得分:0)
使用DATE_FORMAT然后DATE_FORMAT(date, '%m')
才能获得月份值
SELECT * FROM tbl WHERE DATE_FORMAT(date, '%m') = '10'
答案 2 :(得分:0)
从your_table中选择*,其中月份(日期)= 10;
答案 3 :(得分:0)
SELECT `date` FROM table_name
WHERE MONTH(`date`) = '10'
ORDER BY `date` -- without this, the a random 8 would be delivered
LIMIT 8
答案 4 :(得分:0)
如果日期列是日期时间或时间戳,则
SELECT `date` FROM `tablename` WHERE month(`date`) =10