我有一个可以使用SQL Server或MS Access作为数据存储的应用程序。
在一个表中,我有一个DATETIME列。我想检索该值作为DATE值(去除了时间部分)。
我可以在带有CAST()的SQLServer和带有Format()的MS Access中做到这一点。理想情况下,我希望可以对任一数据库应用单个SQL查询,而不是向每个数据库发送稍有不同的查询。有人知道这样做的窍门吗?
最佳答案
使用DATEADD / DATEDIFF
SQL服务器
SELECT DATEADD("d", DATEDIFF("d", 0, getdate()), 0) as someDateOnly
MS Access
SELECT DATEADD("d", DATEDIFF("d", 0, Now()),0) AS someDateOnly;
只需使用字段名称代替
GetDate()
和Now()
例如。
SELECT DATEADD("d", DATEDIFF("d", 0, [somefield]),0) AS someDateOnly;
除了DateAdd / DateDiff之外,如果您想减少2008年之前版本中的时间,则可以使用该方法。
关于sql-server - CAST for SQL Server和MS Access上的Format()DateTime to Date,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7904530/