[英]Date Convert varchar(10)
我有兩個帶有日期的表,表1中的數據類型為(datetime,null)。 表2中的數據類型為varchar(10)。 我正在嘗試編寫一個查詢,該查詢將匹配每個表和標簽中的兩個日期(如果它們是正確的或基於Macth的)。 我已經在下面復制了查詢,但是我始終對轉換語法不滿意,我正在嘗試獲取DD/MM/YYY
。 我會很高興有人在日期列周圍包裝正確的語法。
Select TBL1.ID,
TBL1.AccountName,
TBL1.StartDate,
TBL2.StartDate,
CASE
WHEN LEFT(TBL1.StartDate,10) = TBL2.StartDate THEN 'Correct' ELSE 'Incorrect' END AS 'Date Check'
FROM TBL1
INNER JOIN TBL2 ON TB1.ID = TBL2.ID
GROUP BY TBL1.ID,
TBL1.AccountName,
TBL1.StartDate,
TBL2.StartDate
CONVERT(datetime,TBL1.StartDate)
代替
LEFT(TBL1.StartDate,10)
Left將為您生成一個字符串,但是您需要一個datetime類型來使=。
嘗試這個
CONVERT(varchar(10),Date,103) as StartDate
改為LEFT(TBL1.StartDate,10)
為了進行正確的日期比較,您首先需要將varchar類型轉換為相應的datetime表示形式,然后將兩個日期日期都轉換為通用格式,然后進行比較。
所以改變
LEFT(TBL1.StartDate,10) = TBL2.StartDate
至
CONVERT( varchar(11),TBL1.StartDate,101) = CONVERT(varchar(11),CAST(TBL2.StartDate as DATETIME),101)
將varchar列TBL2.StartDate轉換為datetime將檢查有效的日期值,如果輸入了無效的日期值,則會引發錯誤。
另外,要獲取dd / mm / yyyy格式的日期列,請使用
Select
CONVERT(VARCHAR(11),TBL1.StartDate,103),
CONVERT(VARCHAR(11),TBL2.StartDate,103)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.