2013-08-05 281 views
1

我想從2000年12月12日13默認格式在我的MS SQL改變我的日期時間格式:01:01:0111 2000年12月12日上午1:01SQL日期時間格式轉換

這是我codes->

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

+1

咦?爲什麼你會期望它說謊,並有AM而不是PM? –

+1

這是您的表示層的工作,例如報告工具。 – gvee

回答

1

如果問題是「PM」的文字轉換爲「AM」,然後只需使用 '替換',注意我用了 '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 
1

假設您使用的是日期時間字段,則不會更改以這種方式存儲日期的格式。

你可以實現你的輸出格式就這樣,我用GETDATE,因爲我不知道你正在嘗試做的:

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