【发布时间】:2010-05-10 18:01:09
【问题描述】:
我将日期以“常规日期”格式存储在 MS-Access 表中。
我正在尝试创建一个返回特定日期范围(2010 年 3 月以来的所有记录)之间记录的查询,但是我遇到了“标准表达式中的数据类型不匹配”消息。
这是我的声明;
SELECT Loan.loan_datetimeLeant, product_name,
[product_artist/director], product_category, loanItem_cost
FROM Loan
INNER JOIN ((Product
INNER JOIN Ite
ON Product.[product_id] = Item.[product_id])
INNER JOIN Loan_Items
ON Item.[item_id] = Loan_Items.[item_id])
ON (Loan.[cust_id] = Loan_Items.[cust_id])
AND (Loan.[loan_datetimeLeant] = Loan_Items.[loan_datetimeLeant])
WHERE Loan.loan_datetimeLeant >= '01/03/2010'
AND Loan.loan_datetimeLeant <= '31/03/2010'
ORDER BY Loan.loan_datetimeLeant;
我尝试过更改日期格式(mm/dd/yyyy、dd/mm/yyyy 00:00:00)
【问题讨论】:
-
当您说“我将日期以 'General Date' 格式存储在 MS-Access 表中”时,您是错误的,除非您的意思是使用文本字段来存储这些日期。如果数据类型是日期,则它们以双精度形式存储,整数部分表示自 1899 年 12 月 30 日以来的天数,小数部分表示一天中的时间,作为 24 小时的一部分。在 Jet/ACE SQL 中,在标准中使用明确的日期格式或 DateSerial() 非常重要,以避免美国与非美国日期格式出现问题。但这完全独立于存储。