sql中,我想进行日期(精确到日期)比较,首先想到的就是使用substring对时间进行截取,查看其他同事,也是这么写的。
但是,到我这,报错了。
语句类似下面这种
SELECT u.username,l.description,l.ip,SUBSTRING(l.createdate,0,11) as createdate,l.action
FROM n_logs AS l LEFT JOIN n_users AS u ON u.id = l.userid
WHERE SUBSTRING(l.createdate,0,11) >= '2009-06-07'
AND SUBSTRING(l.createdate,0,11) <= '2009-07-07';
这是因为,保存时间的列使用的是timestamp类型,而现使用的数据库版本,substring方法只接收text类型,可能很多人遇不到这个问题,那是因为使用的版本低。
那怎么解决那?
既然必须text,那就转嘛,直接to_char!这是个解决办法,但不是好办法。
实际上还有更优解,直接使用DATE进行比较:
l.createdate::DATE >= '2009-06-07'::DATE
AND l.createdate::DATE < '2009-07-08'::DATE;
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真垃圾,竟然通过文章字数来判断文章质量的好坏。
那请问,多少字数的文章是好文章呐?
真是讽刺!