为什么这个 INSERT 查询会插入时间值而不是日期?

Why would this INSERT query insert a time value, rather than a date?

我在 MS-Access 数据库中有一个字段,如下所示。

当我 运行 在数据库上查询时(从 VB6 应用程序或直接作为查询)

INSERT INTO [stockQuantities] ([stockCode], [description], [productGroup], [qtyFrom], " & _
"[price], [dateQuoted]) VALUES (" SOS ", "SOS SAND FOR COSTING ONLY", "COS", 10, " & _
"6.34, 01/12/2018);

dateQuoted 的最终值改为插入 00:00:04。当我将格式更改为 Short Date 时,它插入为 30/12/1899.

为什么我的日期没有以正确的格式插入?问题出在查询还是字段上?

Access 中的日期 SQL 需要用 octothorpes 分隔,并且采用 mm/dd/yyyy 或 yyyy-mm-dd 格式。

您的查询应如下所示(假设您要插入 12 月 1 日):

INSERT INTO [stockQuantities] ([stockCode], [description], [productGroup], [qtyFrom], " & _
"[price], [dateQuoted]) VALUES (" SOS ", "SOS SAND FOR COSTING ONLY", "COS", 10, " & _
"6.34, #12/01/2018#);

但是,您也可以插入一个数值,该数值是从 1899-12-30 偏移的天数。您的插入查询刚刚插入了 1 除以 12 除以 2018,其值为 4.388E-05 ,对应于 Access 参考日期后的 4 秒。

如果日期时间列的日期等于参考日期,Access 仅显示时间部分。