[英]Convert long date stored as text to short date Access SQL
我試圖通過MS Access SQL將以文本形式存儲的長日期轉換為短日期。
例如,我有一個分析網站信息的表,其中一個字段是2014年6月17日,星期二。我想在另一個表中運行更新查詢,該表將使用此值並將其轉換為17/06/2014。
請問我可以使用哪些功能?
謝謝
埃爾頓
對於諸如“ 2014年6月17日星期二”之類的日期字符串,VBA函數是這樣的
Option Compare Database
Option Explicit
Public Function ParseDateString(DateString As Variant) As Variant
If IsNull(DateString) Then
ParseDateString = Null
Else
ParseDateString = CDate(Split(DateString, ", ", 2)(1))
End If
End Function
將字符串轉換為真實的Date值。 如果你正在運行一個更新查詢,並把所得到的值轉換成Date/Time
字段,則表中你不希望將日期轉換dd/mm/yyyy
格式。 只需使用函數的結果(真實的Date值)即可。
如果必須將日期轉換為字符串,請使用明確的日期格式yyyy-mm-dd
。 如果轉換為dd/mm/yyyy
格式,Access可能會混淆不明確的日期,並且12/06/2014
可以解釋為12月6日, 而不是 6月12日。
以@VBlades的示例為基礎,但假設其他年份可能出現在源數據中,則允許該年份與2014年不同。
僅當您要解析的日期格式一致時,此方法才有效。
將此函數粘貼到vba模塊中,然后從查詢中調用它。
Function dateParser(datestr As String) As Variant
Dim day_month, year, day_month_year As String
day_month = Split(datestr, ",")(1)
year = Split(datestr, ",")(2)
day_month_year = day_month + ", " + year
dateParser = Format(day_month_year, "dd/mm/yyyy")
End Function
嘗試:
Format(Split("Tuesday, June 17, 2014", ",")(1), "dd/mm/yyyy")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.