CAST for Format()SQL Server和MS Access上的DateTime日期

Lar*_*tig 2 sql-server ms-access datetime

我有一个可以使用SQL Server或MS Access作为数据存储的应用程序.

在一个表中,我有一个DATETIME列.我想将值检索为DATE值(时间部分被剥离).

我可以在SQLServer中使用CAST()和MS Access with Format().理想情况下,我希望可以对任一数据库应用单个SQL查询,而不是向每个数据库发送稍微不同的查询.有没有人知道这样做的诀窍?

Con*_*rix 5

使用DATEADD/DATEDIFF

Sql Server

SELECT DATEADD("d",  DATEDIFF("d", 0, getdate()), 0) as someDateOnly
Run Code Online (Sandbox Code Playgroud)

MS Access

SELECT DATEADD("d",  DATEDIFF("d", 0, Now()),0) AS someDateOnly;
Run Code Online (Sandbox Code Playgroud)

只需使用字段名称代替GetDate()Now()

例如

 SELECT DATEADD("d",  DATEDIFF("d", 0, [somefield]),0) AS someDateOnly;
Run Code Online (Sandbox Code Playgroud)

如果您想在2008年之前的版本中删除时间,那么除了DateAdd/DateDiff是你想要的方式.