我正在尝试通过MS Access SQL将存储为文本的长日期转换为短日期。
例如,我有一个表从网站解析信息,其中一个字段是2014年6月17日星期二。我想在另一个表中运行更新查询,该表获取此值并将其转换为17/06 / 2014。
有关我可以使用哪些功能的任何帮助吗?
感谢
埃尔顿
答案 0 :(得分: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值。如果您正在运行更新查询并将结果值放入表格中的Date/Time
字段,那么您不要想要将日期转换为dd/mm/yyyy
格式。只需使用函数的结果(真正的日期值)。
如果必须将日期转换为字符串,请使用明确的日期格式yyyy-mm-dd
。如果您转换为dd/mm/yyyy
格式,Access可能会导致模糊日期,而12/06/2014
可能会被解释为12月6日,不是 6月12日。
答案 1 :(得分: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
答案 2 :(得分:0)
尝试:
Format(Split("Tuesday, June 17, 2014", ",")(1), "dd/mm/yyyy")