MySQL查询不能在SQLite中运行

时间:2014-10-06 21:28:42

标签: mysql sqlite

SELECT MAX( PRC_MIN_LENGTH ) PRC_MIN_LENGTH, MIN( PRC_MAX_LENGTH ) PRC_MAX_LENGTH, MAX( PRC_MIN_WIDTH ) PRC_MIN_WIDTH, MIN( PRC_MAX_WIDTH ) PRC_MAX_WIDTH
FROM (

SELECT PRDT_PRICE_CODE, MIN( PRC_MIN_LENGTH ) PRC_MIN_LENGTH, MAX( PRC_MAX_LENGTH ) PRC_MAX_LENGTH, MIN( PRC_MIN_WIDTH ) PRC_MIN_WIDTH, MAX( PRC_MAX_WIDTH ) PRC_MAX_WIDTH
FROM PRODUCT_PRICE_INFO
WHERE PRDT_PRICE_CODE
IN (

SELECT PRDT_PRICE_CODE
FROM PRODUCT
WHERE PRODUCT_ID =1
UNION SELECT PRDT_PRICE_CODE
FROM PRODUCT_OPTION
WHERE PROD_OPT_ID
IN (
'1',  '101',  '201',  '303',  '401'
)
)
AND CURDATE( ) 
BETWEEN DATE_SUB( CURDATE( ) , INTERVAL 1 
DAY ) 
AND DATE_ADD( CURDATE( ) , INTERVAL 1 
DAY ) 
GROUP BY PRDT_PRICE_CODE
)PRC_RANGE

此查询在MySQL数据库中运行,但在SQLite中不运行。

错误在哪里,我该如何解决?

1 个答案:

答案 0 :(得分:0)

SQLite使用不同的date functions。 您必须像这样编写日期比较:

...
AND date('now') BETWEEN date('now', '-1 days')
                    AND date('now', '+1 days')
...

(这是一个忠实的翻译,会使查询运行;但是这个查询在MySQL或SQLite中做了你想做的事情是值得怀疑的。)