簡體   English   中英

日期轉換varchar(10)

[英]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.

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