Ms Ms - 无法将String字段转换为Date字段

时间:2013-11-19 03:08:24

标签: vba ms-access access-vba

通过VBA将文件从Excel导入Access后, 我试图使用

将包含日期的字符串字段更改为日期字段
"ALTER TABLE tablex ALTER COLUMN StartDate DATE"

Excel中的字符串29/08/2013将在Access中转换为日期08/29/2013,但

Excel中的字符串9/08/2013将在Access

中转换为日期8/09/2013

我理解它的日期格式。想知道要执行的正确SQL以使两种格式相同。

1 个答案:

答案 0 :(得分:1)

在MS Access中,默认日期格式为mm/dd/yyyy。因此,在更改列的数据类型之前,您必须通过交换ddmm部分消除日期值歧义

UPDATE tablex 
   SET StartDate =  MID(StartDate, IIF(Len(StartDate) = 9, 3, 4), 2) + '/' + 
                   LEFT(StartDate, IIF(Len(StartDate) = 9, 1, 2)) +
                    MID(StartDate, IIF(Len(StartDate) = 9, 5, 6))

如果日期部分总是两位数,那么只需

UPDATE tablex 
   SET StartDate =  MID(StartDate, 4) + '/' + 
                   LEFT(StartDate, 2) +
                    MID(StartDate, 6)