比较Oracle上的日期/时间

时间:2011-08-11 13:45:51

标签: sql oracle stored-procedures

目前在我的oracle表上,我的程序

上有以下if条件
if TO_CHAR(updatetime, 'DD-MON-YYYY HH:MI:SS') != '01-JAN-1900 00:00:01' then

假设来自oracle表的值updatetime是“01-JAN-1900 12:00:01 AM”,我的if条件是真还是假?

我问的原因是因为我不确定TO_CHAR转换为的格式。表中的值采用12小时时钟格式,而条件则采用24小时格式。

这是我第一周使用oracle sql ..

谢谢!

2 个答案:

答案 0 :(得分:5)

@Tony安德鲁斯说过,但是如果你把它与一个包含24小时时钟值的字符串进行比较,你可能想让你的to_char转换为24小时制。像这样将HH改为HH24:

if TO_CHAR(updatetime, 'DD-MON-YYYY HH24:MI:SS') != '01-JAN-1900 00:00:01' then 

答案 1 :(得分:3)

Oracle DATE列不将日期保存为格式化字符串,它(内部)保存为7个数字值:世纪,年,月,日,小时,分钟,秒。因此,在TO_CHAR中使用的格式无关紧要。