我遇到一个小问题,我尝试选择今天用户生日所在的所有行。
在我的表格中,我的数据类似于在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
答案 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