2014-06-29 46 views
0

我想通過MS Access SQL將長文件存儲爲短文本。將長文件存儲爲短文本訪問SQL

例如,我有一個表,它解析了來自網站的信息,其中一個字段是2014年6月17日星期二。我想在另一個表中運行更新查詢,該查詢採用此值並將其轉換爲17/06/2014。

任何幫助我可以使用哪些功能?

感謝

埃爾頓

回答

1

大廈@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 
+0

謝謝大家。我試過@ ako的例子,它的工作原理! – elstiv

0

嘗試:

Format(Split("Tuesday, June 17, 2014", ",")(1), "dd/mm/yyyy") 
+0

謝謝,但它給我一個錯誤「您輸入表達式有一個無效的點(。)或缺少操作員...'我試圖與()一起玩弄 – elstiv

+0

這個表達式中沒有點操作符,所以我會想象錯誤出現在你周圍的代碼中。如果你發佈我可以看看。 – VBlades

2

對於日期字符串,如 「星期二,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/Time字段,那麼您請勿將轉換爲dd/mm/yyyy格式。只需使用函數的結果(真實日期值)。

如果你必須將日期轉換爲字符串,然後使用明確的日期格式yyyy-mm-dd。如果您轉換爲dd/mm/yyyy格式,訪問可能裂傷不明確的日期和12/06/2014可以解釋爲12月6日, 12月