簡體   English   中英

為什么在存儲過程和簡單的select命令中執行convert(datetime,getdate(),101)會產生不同的結果?

[英]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。確保您要轉換為varcharnvarchar ,而不是datetime

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM