我有一个可以使用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/

10-13 05:24