我正在尝试从我的数据库中提取数据并使用DATE
按UNIX_TIMESTAMP
进行组织,但它似乎无法正常工作。这只是我失败的尝试之一。我遇到的问题是我试图将我的表中的Field
转换为UnixTimeStamp,但它似乎不起作用。这个查询的目的是拉出所有未来的生日,如果生日已过,我们在hasItPassed
列中给它一个'0'值,如果没有,我们给它一个'1'值。我试图组织这个表的方式是列出所有即将到来的生日(在顶部有最接近的生日),并在列表底部生成所有生日。
(EXAMPLE) bDay.date format --> '10/07/2013'
所以我的问题是,有没有人知道将数据库中的日期字段转换为unixTime格式的最佳方法?此示例中的内容在我的字段hasItPassed
中,当事实上某些日期未通过时,所有内容都会变为0
(因此有些日期应该有1
而不是0
{1}})。因此,我知道我在转换方面遇到了问题。
SELECT bDay.id, bDay.userid, bDay.summary,
bDay.time_create, bDay.Address, bDay.date, bDay.time,
CASE WHEN UNIX_TIMESTAMP(bDay.date) >= NOW( )
THEN '1'
ELSE '0'
END AS hasItPassed
FROM
BirthdayTable
WHERE
ORDER BY hasItPassed DESC ,
CASE WHEN hasItPassed =1
THEN date
END ASC ,
CASE WHEN hasItPassed =0
THEN date
END DESC
如果有任何混淆,请告诉我,我会重新格式化问题。谢谢你!
答案 0 :(得分:0)
要么比较比较日期或时间戳 - 你把它混淆了。 e.g。
bDay.date >= date(NOW())
或
UNIX_TIMESTAMP(bDay.date) >= UNIX_TIMESTAMP(NOW())