繁体   English   中英

T-SQL日期格式

[英]T-SQL Date Format

如何将19 Dec 2012转换为getdate() 2012-12-22返回的日期格式。 我需要此日期比较,因为如果我将2012年12月19日2012 年11月 19日进行比较,由于字母比较, 2012 年11月 19日会变成更大的日期。

编辑

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

尝试, 但这将返回字符串,而不是日期

 
 
 
  
  SELECT convert(varchar, getdate(), 106)
 
  

您需要先将其转换为日期,然后再与GETDATE进行比较。

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

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

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

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

有关更多信息,请阅读SQL Server联机丛书中的“广播和转换”。

Convert (datetime, stringdate1)

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

ALTER TABLE YourTable ALTER COLUMN BadStringDate datetime;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM