2

我的 SQL 数据库中有日期字段。我只想将那些记录写入日期与当前日期/系统日期匹配的文件中。

我在 ** ** 中找不到任何 SQL 查询来匹配这两个日期。

应该用什么代替???

SELECT * FROM attendence where Date = ???

4

4 回答 4

3

取决于日期时间格式

如果它的'2012-10-09 15:04:58'

SELECT * FROM attendence where Date = CURRENT_TIMESTAMP

如果它的'2012-10-09'

SELECT * FROM attendence where Date = CURRENT_DATE
于 2012-10-09T09:32:04.843 回答
2

它还通过执行以下操作来工作:

SELECT * FROM attendence where Date = '"+System::DateTime::Now.ToString("yyyy-MM-dd") +"'

最后添加的格式是因为日期是在数据库中以该格式添加的。

于 2012-10-09T09:40:26.760 回答
0

除非 mysql 数据库和最终用户之间存在时区差异(如在 c++ 应用程序中远程查询另一个时区的 mysql 数据库),否则应该可以正常工作:

SELECT * FROM attendence WHERE Date = CURDATE()

如果需要考虑时区因素,您要么必须提供最终用户系统日期作为查询参数,要么告诉 MySQL 最终用户所在的时区并使用

CONVERT_TZ(CURDATE(), from_tz, to_tz);
于 2012-10-09T09:29:01.640 回答
0

试试这个:

SELECT * FROM attendence where Date(Date) = NOW()
于 2012-10-09T09:29:55.257 回答