3

我有一个日期时间列,我需要以下列格式显示:

YYYY/MM/DD 00:00:00:000

使用CONVERT,我找不到任何合适的样式。

格式中的/in 非常重要,因为它需要与包含文本作为描述的一部分的VARCHAR列进行比较,如下所示:YYYY/MM/DD 00:00

如果我能找到一种方式/风格,那么我可以使用 SUBSTRING 函数将其与以下值进行比较:

Diary item added for : 2013/08/20 14:12

我看过:

http://databases.aspfaq.com/database/what-are-the-valid-styles-for-converting-datetime-to-string.html

但是,我找不到任何足够的具有 / 的样式。只有-的。

4

3 回答 3

5

您可以使用与您想要比较的最相似的样式,并 使用REPLACE替换。-\

SELECT REPLACE(CONVERT(<yourstyle>),'-','/');

将 Cudo编辑 为 @bluefeet

SELECT REPLACE(CONVERT(varchar(23), yourdate, 121),'-','/');

来自Technet:投射和转换

21 或 121 (2) ODBC 规范(以毫秒为单位)yyyy-mm-dd hh:mi:ss.mmm(24h)

于 2013-08-28T10:22:43.777 回答
3

好吧,您可以在比较两者之前将两个日期转换为任何格式,只需使用其中任何一个:运行此命令,您可以从中选择,确保在比较之前转换两个日期

Select    
    convert(varchar, GetDate(), 100) as '100 Conversion',    
    convert(varchar, GetDate(), 101) as '101 Conversion',    
    convert(varchar, GetDate(), 102) as '102 Conversion',    
    convert(varchar, GetDate(), 103) as '103 Conversion',    
    convert(varchar, GetDate(), 104) as '104 Conversion',    
    convert(varchar, GetDate(), 105) as '105 Conversion',    
    convert(varchar, GetDate(), 106) as '106 Conversion',    
    convert(varchar, GetDate(), 107) as '107 Conversion',    
    convert(varchar, GetDate(), 108) as '108 Conversion',    
    convert(varchar, GetDate(), 109) as '109 Conversion',    
    convert(varchar, GetDate(), 110) as '110 Conversion',    
    convert(varchar, GetDate(), 111) as '111 Conversion',    
    convert(varchar, GetDate(), 112) as '112 Conversion',    
    convert(varchar, GetDate(), 113) as '113 Conversion',    
    convert(varchar, GetDate(), 114) as '114 Conversion',    
    convert(varchar, GetDate(), 120) as '120 Conversion',    
    convert(varchar, GetDate(), 121) as '121 Conversion',    
    convert(varchar, GetDate(), 126) as '126 Conversion',    
    convert(varchar, GetDate(), 130) as '130 Conversion',    
    convert(varchar, GetDate(), 131) as '131 Conversion'

或者使用这个

select REPLACE(convert(varchar, GetDate(), 121),'-','/')
于 2013-08-28T10:21:42.207 回答
2

为什么不能反过来。将 varchar 列转换为日期,而不是将日期转换为 varchar

于 2013-08-28T10:22:50.290 回答