【发布时间】:2013-07-14 07:57:10
【问题描述】:
我的 SQL 数据库中有 日期 字段。 我只想将那些记录写入日期与当前日期/系统日期匹配的文件中。
我在 ** 中找不到任何用于匹配两个日期的 SQL 查询。
应该用什么来代替???
SELECT * FROM attendence where Date = ???
【问题讨论】:
标签: c++ mysql visual-c++
我的 SQL 数据库中有 日期 字段。 我只想将那些记录写入日期与当前日期/系统日期匹配的文件中。
我在 ** 中找不到任何用于匹配两个日期的 SQL 查询。
应该用什么来代替???
SELECT * FROM attendence where Date = ???
【问题讨论】:
标签: c++ mysql visual-c++
取决于日期时间格式
如果它的'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") +"'
最后的格式被添加,因为日期是在数据库中以该格式添加的。
【讨论】:
试试这个:
SELECT * FROM attendence where Date(Date) = NOW()
【讨论】:
除非 mysql 数据库和最终用户之间存在时区差异(如在 c++ 应用程序中远程查询另一个时区中的 mysql 数据库),否则应该可以正常工作:
SELECT * FROM attendence WHERE Date = CURDATE()
如果需要考虑时区因素,您要么必须提供最终用户系统日期作为查询参数,要么告诉 MySQL 最终用户所在的时区并使用
CONVERT_TZ(CURDATE(), from_tz, to_tz);
【讨论】: