将文本转换为日期
Convert Text to Date
我在 Access 中有一个名为 "TempD"
的文本字段
其中包含如下数据
Mon, Oct 6, 2014
Mon, Nov 10, 2014
我需要使用 SQL 将其转换为正确的日期格式并将其放入字段 "Emaildate"
我正在使用下面的 sql 查询:
UPDATE MissingT
SET MissingT.emaildate = format(cdate(Right([tempd],4) & "/" & Mid([tempd],6,3) & "/" & Mid([tempd],9,2)));
但问题是,如果日期是 single/double,TempD 字段的长度会发生变化。当日期为 2 位数时
(Mon, Nov 10, 2014)
它正在将此文本转换为 2014-11-01
而不是 2014-11-10
知道如何解决这个问题吗?
丢弃日期字符串开头的缩写日期名称、逗号和 space ...
? Mid("Mon, Oct 6, 2014", 5)
Oct 6, 2014
可以使用 CDate()
...
将生成的子字符串直接转换为 Date/Time 值
? CDate(Mid("Mon, Oct 6, 2014", 5))
10/6/2014
然后,如果您希望 Date/Time 值作为 yyyy/mm/dd 格式的字符串...
? Format(CDate(Mid("Mon, Oct 6, 2014", 5)), "yyyy/mm/dd")
2014/10/06
如果这就是您想要的,您可以在 UPDATE
查询中执行此操作...
UPDATE MissingT
SET emaildate = Format(CDate(Mid(tempd, 5)), "yyyy/mm/dd");
对传递给日期字段的日期值应用格式没有任何意义。
解决方法如下:
UPDATE
MissingT
SET
emaildate = DateValue(Mid([tempd], 5))
我在 Access 中有一个名为 "TempD"
其中包含如下数据
Mon, Oct 6, 2014
Mon, Nov 10, 2014
我需要使用 SQL 将其转换为正确的日期格式并将其放入字段 "Emaildate"
我正在使用下面的 sql 查询:
UPDATE MissingT
SET MissingT.emaildate = format(cdate(Right([tempd],4) & "/" & Mid([tempd],6,3) & "/" & Mid([tempd],9,2)));
但问题是,如果日期是 single/double,TempD 字段的长度会发生变化。当日期为 2 位数时
(Mon, Nov 10, 2014)
它正在将此文本转换为 2014-11-01
而不是 2014-11-10
知道如何解决这个问题吗?
丢弃日期字符串开头的缩写日期名称、逗号和 space ...
? Mid("Mon, Oct 6, 2014", 5)
Oct 6, 2014
可以使用 CDate()
...
? CDate(Mid("Mon, Oct 6, 2014", 5))
10/6/2014
然后,如果您希望 Date/Time 值作为 yyyy/mm/dd 格式的字符串...
? Format(CDate(Mid("Mon, Oct 6, 2014", 5)), "yyyy/mm/dd")
2014/10/06
如果这就是您想要的,您可以在 UPDATE
查询中执行此操作...
UPDATE MissingT
SET emaildate = Format(CDate(Mid(tempd, 5)), "yyyy/mm/dd");
对传递给日期字段的日期值应用格式没有任何意义。
解决方法如下:
UPDATE
MissingT
SET
emaildate = DateValue(Mid([tempd], 5))