在firebird sql中使用整数作为日期

时间:2013-11-20 16:13:55

标签: sql firebird

我正在研究一个系统,它将日期和时间存储为firebird sql中的整数,无论​​出于何种原因我都不明白。无论如何,我需要从这个脚本中将这些数字作为日期对象进行比较:

SELECT FIRST 100 a.S_ID, a.TR_SEQ, a.TR_DATE, a.TR_TIME, a.TR_TERM_SLA, r.DR_NAME, 
FROM TRANSACK a, READER r, EVENT_TYPE ev, MASTER m 
WHERE a.TR_TERM_SLA = r.T_ADDR and a.TR_EVENT = ev.ET_TYPENO and a.TR_MSTSQ = m.MST_SQ 
ORDER BY a.TR_DATE DESC 

现在,我想添加到这样的条件:

and CAST(TR_DATE as DATE) < '2013-11-19' and and CAST(TR_DATE as DATE) > '2013-11-20'

...以上条件不起作用,因为TR_DATE列是整数,格式就像今天的'20131120'。我想我之前必须施放到弦上,然后施放到日期,或者一些这样的体操练习。

实际上有一种方法让我在某种转换后使用TR_DATE作为日期对象吗?

1 个答案:

答案 0 :(得分:3)

由于“整数日期”采用yyyymmdd格式,您可以安全地比较它们。因此,不是将它们转换为日期,而是将日期转换为相同格式的整数:'2013-11-19'整数将为20131119,因此

and TR_DATE < 20131119 and TR_DATE > 20131120

可以将整数转换为实际日期类型,但这样做会更多。