T-SQL日期格式

时间:2012-12-22 08:02:43

标签: sql sql-server tsql

如何将19 Dec 2012转换为getdate()2012-12-22返回的日期格式。 我需要这个用于日期比较,因为如果我将 2012年12月19日 2012年11月19日进行比较, 2012年11月19日将证明更长的日期到期字母比较。

修改

我不是这个表的数据库设计者,因为它是工作的,所以给了表。否则就不会使用varchar来存储日期

2 个答案:

答案 0 :(得分:6)

<击>

<击>

尝试,但这会返回一个字符串而不是日期

SELECT convert(varchar, getdate(), 106)

<击>

在与GETDATE进行比较之前,您需要先将其转换为日期。

SELECT convert(date, '19 Dec 2012', 106)

您是设计数据库的人吗?如果是,则下次设计时(或如果有时间更改)使用适当的数据类型。

答案 1 :(得分:6)

将两者都转换为日期。不要使用字符串来存储日期值!更好的是,更改数据库架构并完全消除字符串不匹配问题。

另外,请注意Getdate()不返回字符串。它返回datetime数据类型中的日期。 客户端将其转换为字符串表示形式。

有关详细信息,请阅读SQL Server联机丛书中的“强制转换和转换”。

Convert (datetime, stringdate1)

要修复损坏的数据库列,请执行以下操作:

ALTER TABLE YourTable ALTER COLUMN BadStringDate datetime;