将文本转换为日期

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))