[英]Unable to convert varchar to date
我正在嘗試將函數 ( varchar
) 轉換為date
,但收到以下錯誤消息。
錯誤
無法從字符串轉換日期和/或時間。
腳本
DECLARE @MyDate date
SET @MyDate = CONVERT(date, dbo.GETMINDATE(0123), 103)
SELECT @MyDate
該函數本身返回一個varchar
日期,如 - '01 Apr 2010 08:00:00.000'
。
SQL Server 主機采用法語設置,因此可能是區域設置問題。
如果您對此感到困惑並且無法更改它以修復函數以返回正確的數據類型,那么您可以使用PARSE
來指定靜態區域性(因此完全不受服務器區域設置及其用戶的默認設置的影響)。
SELECT PARSE('01 Apr 2010 08:00:00.000' AS date USING 'en-US')
顯然,用您的函數調用替換字符串文字。 當你正在鑄造date
的問題,我已經使用了相同的,這將截斷時間部分。
如果不是有意的,請使用datetime
或datetime2
。
這是一個實驗
--this returns a value
set language english;
select CAST('01 Apr 2010 08:00:00.000' as date);
--this works
set language french;
select CAST('01 Avr 2010 08:00:00.000' as date);
--this errors out
set language french;
select CAST('01 Apr 2010 08:00:00.000' as date);
因此您可以根據本地設置(您可以在查詢范圍內變化)翻譯該值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.