这是我的SQL查询。我的表中有关于此查询的数据。但是这个查询不会返回任何结果。
Select Prod_Batch_ID,tbl_product.product_name, Quantity,DATE_FORMAT(Production_Date, '%W, %D %M %Y') from tbl_production,tbl_product where tbl_production.Product_ID = tbl_product.Product_ID and (Production_Date between STR_TO_DATE('2010-01-01 00:00:00.000','%m/%d/%Y')and DATE_ADD(STR_TO_DATE('2010-12-12 00:00:00.000','%m/%d/%Y'), INTERVAL 1 DAY))
表中的Production_Date列是时间戳类型。是否使用str_to_date将问题转换为日期?
答案 0 :(得分:2)
问题是您无法查询timestamp列。引用SQL Server联机丛书:
SQL Server时间戳数据类型具有 与时间或日期无关。 SQL 服务器时间戳是二进制数 表示相对序列 哪些数据修改发生在 一个数据库。时间戳数据类型 最初实施是为了支持 SQL Server恢复算法。
答案 1 :(得分:1)
您的STR_TO_DATE格式字符串错误。尝试
%Y-%m-%d
或者
%Y-%m-%d %h-%i-%s
您需要将日期格式与传入的字符串相匹配。