排序日期为今天的行

时间:2015-03-05 16:46:43

标签: mysql date-format

我遇到一个小问题,我尝试选择今天用户生日所在的所有行。

在我的表格中,我的数据类似于在varchar中格式化的yyyy-mm-dd。

我目前的要求是:

SELECT * FROM rb_users WHERE user_birthday = DATE_FORMAT(NOW(), '%m %d')

我知道,当我阅读文档时,上面的内容将不会返回任何内容。据我了解,我需要DATE_FORMAT(NOW(), '%Y-%m-%d')才能使其发挥作用。

我的问题是:无论如何要忽略这种结构中的年份,或者我应该将我的字段编辑为 unixformat ,如1402012800?

就像现在一样,我只会在2015年有生日的时候找人。

来源#1: https://stackoverflow.com/questions/24076419/sql-query-to-check-birthday-is-today

1 个答案:

答案 0 :(得分:0)

因为您已指示列user_birthday是varchar,所以您可以使用字符串函数,如下所示。另外一定要将连字符(" - ")添加到DATE_FORMAT中:

SELECT * FROM rb_users WHERE RIGHT(user_birthday, 5) = DATE_FORMAT(NOW(), '%m-%d')

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_right