簡體   English   中英

SQL Server 2008 VarChar轉換為DateTime

[英]SQL Server 2008 VarChar To DateTime

我有一個表,不幸的是許多日期都存儲為字符串。

我有許多報告將其轉換為日期時間並按它們進行過濾。 直到今天突然間我收到這個錯誤,這一切都很好

“將varchar數據類型轉換為datetime數據類型導致超出范圍的值。”

日期全部以“ yyyy-mm-dd”格式存儲,並且都有效。

如果我運行以下SQL語句

SELECT CAST('2010-06-02' AS DateTime) 

我希望得到“ 2010-06-02”,但是到今天為止,我得到的“ 2010-02-06”隨着SQL格式日期的方式發生了變化。 我看過服務器上的區域設置,這看起來都是正確的。

還有什么可能導致這種情況?

嘗試顯式設置格式

select convert(datetime, '2010-06-02',101)

問題1:還有什么可能導致這種情況?

當地人,您可能位於local101(US)下,並放置了103(英國/法國)的數據

像巴里傷心使用轉換

獲得此轉換的明確方法是執行以下操作:

SELECT CAST(replace('2010-06-02', '-', '') AS DateTime) 

它將始終被解釋為YYYYMMDD,而忽略set dateformat ydm聲明或數據庫具有的任何文化設置。

暫無
暫無

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

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