我有一個選擇查詢,它的日期存盤為字串,例如 20211231(2021 年 12 月 31 日)。我正在嘗試使用 CDate 函式來轉換字串。如果我在 SQL 視圖中輸入以下內容
SELECT CDate(Format([XLCustOrdDtl]![DATE_ADDED],"####/##/##")) AS DteAdded
FROM XLCustOrdDtl;
結果與預期一致,但是當我回傳設計視圖并運行查詢時,Access 將字串重新格式化為
SELECT CDate(Format([XLCustOrdDtl]![DATE_ADDED],"#\/#\/#")) AS DteAdded
FROM XLCustOrdDtl;
這導致#Error
關于為什么會發生這種情況以及我如何糾正這個問題的任何想法?
uj5u.com熱心網友回復:
由于您的日期是文本,請讓 Format 知道這一點并使用@。
另請注意,格式化斜杠不是斜杠,而是本地日期分隔符。要強制使用文字斜杠,請使用反斜杠對其進行轉義:
SELECT CDate(Format([XLCustOrdDtl]![DATE_ADDED],"@@@@\/@@\/@@")) AS DteAdded
FROM XLCustOrdDtl;
uj5u.com熱心網友回復:
顯然,字串中缺少連字符或斜杠標點符號意味著 Access 無法識別日期部分,而 # 是日期分隔符,不能作為日期格式占位符。
假設沒有 Null 欄位并且總是有 8 位數字,包括占位符零,請考慮:
DateSerial(Left([DATE_ADDED],4), Mid([DATE_ADDED]5,2), Right([DATE_ADDED],2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429077.html
