我的SQL数据库中有日期字段。 我只希望将这些记录写入日期与当前日期/系统日期匹配的文件中。
我找不到** **中的任何SQL查询来匹配这两个日期。
应该取代什么?
SELECT * FROM attendence where Date = ???
答案 0 :(得分:3)
取决于日期时间格式
如果'2012-10-09 15:04:58'
SELECT * FROM attendence where Date = CURRENT_TIMESTAMP
如果'2012-10-09'
SELECT * FROM attendence where Date = CURRENT_DATE
答案 1 :(得分:2)
它的工作原理如下:
SELECT * FROM attendence where Date = '"+System::DateTime::Now.ToString("yyyy-MM-dd") +"'
添加了最后的格式,因为日期是以该格式添加到数据库中的。
答案 2 :(得分:0)
除非mysql数据库和endusers之间存在时区差异(如在远程查询另一个时区的mysql数据库的c ++应用程序中),否则这应该可以正常工作:
SELECT * FROM attendence WHERE Date = CURDATE()
如果需要考虑时区因素,您必须提供最终用户系统日期作为查询参数,或告诉MySQL最终用户所在的时区并使用
CONVERT_TZ(CURDATE(), from_tz, to_tz);
答案 3 :(得分:0)
试试这个:
SELECT * FROM attendence where Date(Date) = NOW()