2011-03-31 37 views
0

希望这是一个容易的。当前日期的记录集使用CURRENT_TIMESTAMP

我有一个查询,我想根据使用CURRENT_TIMESTAMP的列(record_date)为今天的日期生成结果。

所以我的查询会...

Select columns FROM fields WHERE table.record_date = DATE_SUB(NOW()); 

这是扔了一个错误... :(


感谢您帮助....所以我尝试... 。

SELECT * FROM daily_record WHERE record_date = CURDATE()

但它没有产生RESU LT。

这里是在专栏中,我正在寻找的数据的样本...

2011-03-31 11点28分37秒, 2011-03-31 11点28分37秒, 2011- 03-31 11:28:37, .....

没关系,时间也节省了吗?

+0

什么是错误?粘贴的代码在a)之前缺少a) – Mark 2011-03-31 12:58:58

+0

我注意到了缺少的支架:)... 您的SQL语法有错误;检查对应于您的MySQL服务器版本的手册,以便在 – Greg 2011-03-31 13:03:47

回答

0

这是你想要的吗?

Select columns FROM fields WHERE table.record_date > CURDATE(); 
+0

伟大的工作!我猜这是因为包含时间而起作用? – Greg 2011-03-31 13:30:35

+0

是的(如果我理解你的评论)。就好像你在做'2011-03-31 17:09:33'(当前时间)'> 2011-03-31 00:00:00'(当天的第一秒) – 2011-03-31 15:10:05

0

DATE_SUB()用于从MySQL中的日期中减去一个时间间隔。你有DATE_SUB(NOW()),但没有指定的时间间隔

它应该是这样的

... DATE_SUB(now(), INTERVAL 5 DAY); 

所以MySQL的抱怨意外),因为缺少时间间隔。

如果要转换“现在”为日期,你可以简单地使用CURDATE(),或DATE(now())

+0

附近使用正确的语法感谢您的帮助! 我试过这个... SELECT * FROM'daily_record' WHERE'record_date' = CURDATE() 但它没有得到任何结果。 这里是我正在搜索的列中的数据示例... 2011-03-31 11:28:37 2011-03-31 11:28:37 2011-03-31 11:28 :37 ..... 重要的是,时间也节省了吗? – Greg 2011-03-31 13:23:54

+0

是的。当将一个普通日期与完整的日期时间进行比较时,mysql会将该日期上转换为00:00:00时间。所以“现在”的小时/分钟/秒就必须与您正在比较的记录中的时间戳完全匹配。 – 2011-03-31 16:08:36