我在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)));
但问题是,如果当天是单人/双人,那么TempD字段的长度会有所不同。当天是2位数
(Mon, Nov 10, 2014)
它正在将此文字转换为2014-11-01
而不是2014-11-10
知道如何解决这个问题?
答案 0 :(得分:2)
从日期字符串的开头放弃缩写的日期名称,逗号和空格...
? Mid("Mon, Oct 6, 2014", 5)
Oct 6, 2014
使用CDate()
...
? CDate(Mid("Mon, Oct 6, 2014", 5))
10/6/2014
然后,如果您希望将日期/时间值作为 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");
答案 1 :(得分:0)
对传递给Date字段的日期值应用Format是没有意义的。
这是如何解决它:
UPDATE
MissingT
SET
emaildate = DateValue(Mid([tempd], 5))