一尘不染

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

sql

问题:

我需要 使用ODBC转义序列 仅获取DATE(=日期,无时间)。

然而

SELECT 
     {fn CONVERT(SomeTable.Col_With_DateTime_Value, SQL_DATE)}
FROM SomeTable

确实将列作为datetime值(date WITH time)返回。

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

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

CONVERT(char(8),  getdate(), 112) AS v112_ISO  
CONVERT(char(10), getdate(), 104) AS v104_XML

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


阅读 268

收藏
2021-03-08

共1个答案

一尘不染

您可以使用此:

select {fn convert({fn timestampdiff(SQL_TSI_DAY, 0, DatetimeCol)}, SQL_DATE)}
from SomeTable

在我可以测试的环境中运行(SQL Server 2000-2012)。

更新:

我认为这是另一种比使用convert更快的方法。

select {fn timestampadd(SQL_TSI_DAY, {fn timestampdiff(SQL_TSI_DAY, 0, DatetimeCol)}, 0)} 
from SomeTable
2021-03-08