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