我收到了一位客户的任务,他希望对正在进行的申请进行一些更改。有一个名为users的表,其中有一个名为birthdate的字段。之前的开发人员是一位拯救生日{0}}而不是varchar(255)
的白痴。生日列中的数据保存为datetime
。
我想获取生日当前日期的所有用户。
我试图使用:
January 01, 1986
但它返回空数据集。我该如何解决这个问题?
答案 0 :(得分:2)
您的日期格式与您在问题中指定的日期格式不符。我想你正在寻找:
$query = "SELECT * FROM users WHERE
DAY(STR_TO_DATE(birthday, '%M %d, %Y')) = '".date('d')."'
AND MONTH(STR_TO_DATE(birthday, '%M %d, %Y')) = '".date('m')."'";
答案 1 :(得分:0)
我解决了问题并意识到我做错了什么: -
$query = "SELECT * FROM users
WHERE DAY(date_format(str_to_date( birthday, '%M %d, %Y' ), '%Y-%m-%d' )) = '".date('d')."'
AND MONTH(date_format(str_to_date( birthday, '%M %d, %Y' ), '%Y-%m-%d' )) = '".date('m')."'";
首先我们需要将生日从字符串转换为兼容日期,然后我们需要将其格式化为实际日期。
答案 2 :(得分:0)