13

我正在 MS-Access 2007 中尝试以下查询,但它在时间字段上失败。

INSERT INTO LOG (
    EMPLOYEECODE, STATUSID, LOCATIONID, TIME, DURATION,
    SHIFTID, LATECOMING, EARLYGOING, LOGDATE, STATIONID
)
VALUES (
    1, 1, 0, '4/21/2009 2:25:53 PM', 0, 
    8, 0, 1, '1/1/2009', 1
)

TIME字段被定义为日期时间。

没有该TIME字段,查询工作正常!

我尝试了许多不同的方法,例如将日期时间括在散列、引号等中。但是,时间字段上的查询仍然失败。


谢谢你们!这几乎让我完全在那里。我仍然不断收到插入语句的语法错误,但是在进一步的谷歌搜索中,我意识到这TIME可能是一个保留关键字,所以把它放在方括号上[TIME]就可以了!

4

1 回答 1

24

访问使用#中的日期和时间输入,因为访问无法在 SQL 查询中将字符/文本自动转换为日期或时间(或访问称为查询),您最好使用国际标准输入日期时间,即YYYY- MM-DD HH:NN:SS(4 位年,2 位月,2 位日,2 位小时,2 位分钟,2 位秒)

所以对于2009 年 4 月 21 日下午 2:25:53使用#2009-04-21 14:25:53#

或者如果仍然失败,您可以使用#'2009-04-21 14:25:53'#

编辑:如果您启用 ANSI 92 或使用 ADO/OLEDB 作为数据库接口,上面可能会工作,感谢 David 指出

我建议你使用 YYYY-MM-DD HH:NN:SS 格式并在使用前用单引号 (') 尝试 # 就像我上面说的

于 2009-04-21T10:00:53.103 回答