SQL DateTime格式转换

时间:2013-08-05 07:47:57

标签: sql-server datetime

我想将MS SQL上的日期时间格式从默认格式12-12-2000 13:01:01:0111更改为 2000年12月12日上午1:01

这是我的代码 - >

date_issued = CONVERT(VARCHAR(20),date_issued,107) +' '+
              SUBSTRING(CONVERT(VARCHAR(10),date_issued,108),2,0)+
              LTRIM(RIGHT(CONVERT(VARCHAR(25),date_issued,100),7)),

如何将其转换为2000年12月12日上午1:01 ???

2 个答案:

答案 0 :(得分:1)

假设您使用的是日期时间字段,则不会更改以该方式存储的日期格式。

你可以通过这种方式实现输出格式,我使用了getdate因为我不确定你要做什么:

SELECT stuff(convert(varchar(25), getdate(), 100), 
       1, 3, datename(month, getdate()))

答案 1 :(得分:1)

如果问题是将'PM'文本转换为'AM',那么只需使用'REPLACE',请注意我在下面的示例中使用了'GETDATE()'

  CONVERT(VARCHAR(20),getdate(),107) +'  '+
  SUBSTRING(CONVERT(VARCHAR(10),getdate(),108),2,0)+
  REPLACE(LTRIM(RIGHT(CONVERT(VARCHAR(25),getdate(),100),7)),'PM','AM')

如果 PM-> AM和AM-> PM ,请尝试以下

SELECT  "DateTime"=  
  CASE 
     WHEN patindex('%AM', CONVERT(VARCHAR(20), GETDATE(), 100) ) =  0 THEN

       CONVERT(VARCHAR(20),getdate(),107) +'  '+
       SUBSTRING(CONVERT(VARCHAR(10),getdate(),108),2,0)+
       REPLACE(LTRIM(RIGHT(CONVERT(VARCHAR(25),getdate(),100),7)),'PM','AM')

     ELSE 

       CONVERT(VARCHAR(20),getdate(),107) +'  '+
       SUBSTRING(CONVERT(VARCHAR(10),getdate(),108),2,0)+
       REPLACE(LTRIM(RIGHT(CONVERT(VARCHAR(25),getdate(),100),7)),'AM','PM')

  END