sql - 在访问查询中将文本字段转换为日期/时间字段不起作用
问题描述
我正在使用访问数据库和 vb6。我的表有一个名为“InvoiceDate”的字段,它是一个文本字段。我不允许修改数据库。所以我想我唯一的选择是将文本字段更改为查询中的日期/时间字段。我找到了几种方法来做到这一点。它们如下。
- 格式(发票日期,“yyyy/mm/dd”)
- (DateSerial(Left(InvoiceDate,4),Mid(InvoiceDate,5,2),Right(InvoiceDate,2))在#2015/01/01#和#2016/01/01#之间)
- DateValue(InvoiceDate, "yyyy/mm/dd")
- CDate(InvoiceDate, "yyyy/mm/dd")
但是这4种方法都不起作用。我想不通这个。
我正在使用的查询如下
SELECT Invoice.InvoiceDate, InvoicedProduct.InvoiceType, Invoice.InvoiceStatus,
Invoice.RetailerID, Invoice.DailySalesID, Invoice.RepID,
InvoicedProduct.Quantity, InvoicedProduct.UnitRate,
InvoicedProduct.TotalItemValue
FROM Invoice
INNER JOIN InvoicedProduct
ON (Invoice.DailySalesID = InvoicedProduct.DailySalesID)
AND (Invoice.RepID = InvoicedProduct.RepID)
AND (Invoice.InvoiceID = InvoicedProduct.InvoiceID)
WHERE (((InvoicedProduct.ProductID)='9010001174130.4')
AND (DateValue(Invoice.InvoiceDate) Between #2015/01/01# And #2016/01/01#))
GROUP BY Invoice.InvoiceDate, InvoicedProduct.InvoiceType, Invoice.InvoiceStatus,
Invoice.RetailerID, Invoice.DailySalesID, Invoice.RepID,
InvoicedProduct.Quantity, InvoicedProduct.UnitRate,
InvoicedProduct.TotalItemValue
HAVING (((InvoicedProduct.InvoiceType)='Invoice' OR (InvoicedProduct.InvoiceType)='Sound')
AND ((Invoice.InvoiceStatus)='VALID'))
ORDER BY Invoice.InvoiceDate;
这给了我错误“标准表达式中的数据类型不匹配”
我的 InvoiceDate 字段中包含以下两种类型
2016/01/04 10:00:上午和 2016/01/20 08:25 PM
唯一的区别是时间后面的冒号
请帮忙。谢谢你。
解决方案
Your criteria:
DateValue(Invoice.InvoiceDate) Between #2015/01/01# And #2016/01/01#
is correct, so the error message indicates, that one or more of your text dates in InvoiceDate don't represent a valid date, like 2015-06-31 or Null.
Run a query to check this:
Select *, IsDate(InvoiceDate) As ValidDate From Invoice
and see if any of the values of ValidDate are False.
To ignore the extra colon:
DateValue(Replace(Invoice.InvoiceDate, ": ", " ")) Between #2015/01/01# And #2016/01/01#
推荐阅读
- spring-integration - 有没有办法确保 Spring Cloud Stream Source 已经完成初始化?
- python-3.x - 我想在我的 django Python 视图中列出用户任务
- android - 未定义参数“body”
- javascript - 有没有办法在不同的选项卡之间隔离“localStorage”?
- html - 如何在输入焦点上为渐变边框设置动画?
- javascript - 在 displayTag 中禁用超链接
- google-chrome-extension - Chrome 扩展程序 - 将事件消息发送回原始选项卡
- node.js - 如果不知道,如何获取节点 js 文件的完整路径
- assembly - MIPS1 在编译时如何确定静态数据变量地址?
- python - 从 python 函数返回 dict 项