[英]Why does convert(datetime,getdate(),101) yields different results while executed in stored procedure and a simple select command?
不知道為什么,但是在運行命令時
select CONVERT(datetime, getdate(),101)
得到'2016-10-27 15:53:12.743'
,這是期望的結果。
但是,當在存儲過程中運行相同的命令時,例如
if @CodeFilter2 is not null
select @CodeFilter2=CONVERT(datetime,GETDATE(),101)
產生'Oct 27 2016 3:55PM'
。
請幫助我了解為什么會這樣。
提前致謝!
您要將datetime
轉換為datetime
嗎? 您是否希望convert
使用的格式不固定? 它只是被忽略,因為它對您正在進行的轉換沒有意義。 如果要將日期時間轉換為varchar,則需要使用類似convert(varchar(max), getDate(), 101)
,它將為您提供正確的輸出10/27/ 10/27/2016
我不知道為什么您希望您的任何一個樣本都是正確的; 它們只是碰巧以這種方式工作,因為默認轉換(基於語言環境和其他上下文,這是非常可變的)恰好是您想要的結果(在第一種情況下)。
如果您需要依賴特定的格式,則必須使用顯式格式 。 或者讓應用程序代替數據庫服務器來處理它。 ODBC規范形式的正確格式(似乎是您想要的格式)是121。確保您要轉換為varchar
或nvarchar
,而不是datetime
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.