如何使用ODBC函数将datetime转换为date?

Ste*_*ger 3 sql sql-server postgresql datetime odbc

题:

我需要使用ODBC转义序列获取DATE ONLY(= date without time).

然而

SELECT 
     {fn CONVERT(SomeTable.Col_With_DateTime_Value, SQL_DATE)}
FROM SomeTable
Run Code Online (Sandbox Code Playgroud)

确实将列作为datetime值返回(date with time).

是否有任何ODBC功能我可以用得到的日期

注意:
这不是一个重复的问题.
我知道可以使用 -ODBC转换功能,比如

CONVERT(char(8),  getdate(), 112) AS v112_ISO  
CONVERT(char(10), getdate(), 104) AS v104_XML  
Run Code Online (Sandbox Code Playgroud)

但出于兼容性原因,我确实需要一个ODBC函数.

Mik*_*son 5

你可以用这个:

select {fn convert({fn timestampdiff(SQL_TSI_DAY, 0, DatetimeCol)}, SQL_DATE)}
from SomeTable
Run Code Online (Sandbox Code Playgroud)

适用于我可以测试的环境(SQL Server 2000-2012).

更新:

这是另一种我认为比使用转换更快的方法.

select {fn timestampadd(SQL_TSI_DAY, {fn timestampdiff(SQL_TSI_DAY, 0, DatetimeCol)}, 0)} 
from SomeTable
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,也在考虑timestampdiff,但是在date和datetime值之间.不知怎的,这个变种让我望而却步.简洁明快. (2认同)