2014-09-05 74 views
0

如果SELECT GETDATE()產生2014-09-05 11:06:38.927SELECT CONVERT(VARCHAR(50), GETDATE(), 101)產生09/05/2014,那麼,爲什麼不SELECT CONVERT(VARCHAR(50), '2014-09-05 11:06:38.927', 101)產生2014-09-05 11:06:38.927,而不是09/05/2014轉換日期時間爲varchar?只有日期部分

+2

爲什麼不讓應用程序執行格式化?還有,爲什麼你想以不明確的格式呈現日期?你認爲沒有人會來到英國或加拿大或美國以外的任何地方,並假設這是5月9日而不是9月5日? – 2014-09-05 19:24:49

+0

感謝smarty褲子。很高興您認爲這是一個網絡應用程序,但實際上,它是一個非常面向客戶的桌面應用程序,運行在位於美國的一家小公司內,因此不存在任何英國或加拿大公民使用它的風險。無論如何,這無疑是一個假設性問題。你的觀點與我的問題無關。 – 2014-09-06 01:10:48

回答

1

您要轉換的第三條語句中的值已經是一個字符串。轉換將其轉換價值和下降的時間,如果你第一個字符串轉換爲日期:

SELECT CONVERT(VARCHAR(50), CAST('2014-09-05 11:06:38.927' as DATETIME), 101) 
3
CONVERT(VARCHAR(50), GETDATE(), 101) 

被轉換日期時間爲varchar

CONVERT(VARCHAR(50), '2014-09-05 11:06:38.927', 101) 

是一個varchar轉換爲varchar

嘗試:

CONVERT(VARCHAR(50), convert(datetime, '2014-09-05 11:06:38.927'), 101) 

,您應該看到與第一個查詢類似的結果。