我正在使用使用Firebird进行数据存储的软件.我使用Python和FDB库来处理Firebird.我try 获取指定日期范围内的所有记录,但FDB对我的所有try 都提出了不同的例外.
日期的数据类型为-时间戳,以数据库为单位
try 1:
'SELECT * FROM table WHERE date BETWEEN "2023-07-14" AND "2023-05-08"'
例外:
('Error while preparing SQL statement:\n- SQLCODE: -206\n- Dynamic SQL Error\n- SQL error code = -206\n- Column unknown\n- 2023-07-16\n- At line 1, column 73', -206, 335544569)
try 2:
'SELECT * FROM table WHERE date BETWEEN "2023-07-14 09:00" AND "2023-05-08 17:00"'
此try 中的异常等于try 1中的异常
try 3:
'SELECT * FROM table WHERE date BETWEEN %s AND %s"' % (datetime.datetime(2023, 7, 16, 9), datetime.datetime(2023, 5, 8, 17))
例外:
('Error while preparing SQL statement:\n- SQLCODE: -104\n- Dynamic SQL Error\n- SQL error code = -104\n- Token unknown - line 2, column 48\n- 09', -104, 335544569)
我在谷歌上搜索,没有找到关于这个问题的信息.我也try 过使用CAST()
来转换类型,但这并不管用.
据我所知,问题出在日期类型上.
因为此请求有效:
'SELECT * FROM table WHERE date = CURRENT_TIMESTAMP'
这个请求不起作用:
'SELECT * FROM table WHERE date = "2023-07-16 22:00:00.000"'