Sql server SQL日期时间格式转换

Sql server SQL日期时间格式转换,sql-server,datetime,Sql Server,Datetime,我想将MS SQL上的日期时间格式从默认格式12-12-2000 13:01:01:0111更改为2000年12月12日1:01AM 这是我的代码-> date_issued = CONVERT(VARCHAR(20),date_issued,107) +' '+ SUBSTRING(CONVERT(VARCHAR(10),date_issued,108),2,0)+ LTRIM(RIGHT(CONVERT(VARCHAR(25),date

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

这是我的代码->

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???

假设您使用的是datetime字段,则不会更改以这种方式存储的日期格式

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

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

如果问题是将“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

嗯?为什么你希望它是谎言,并有上午而不是下午?这是一项工作,为您的演示层,例如报告工具。