`
loveseaside
  • 浏览: 148139 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

DB2 DATE 函数的使用一个陷阱

    博客分类:
  • db2
DB2 
阅读更多

DB2 DATE 函数的使用一个陷阱

1)DATE 函数正确使用的话
SELECT DATE('2010-05-19') FROM SYSIBM.SYSDUMMY1;或者使用 VALUES DATE('2010-05-19')
结果:
======
2010-05-19

这个是预期得到想要得到的结果

2)如果在DATE 函数中忘掉单引号的话,结果就会出错
SELECT DATE(2010-05-19) FROM SYSIBM.SYSDUMMY1;或者使用 VALUES DATE(2010-05-19)
结果:
======
0006-06-09

显然这不是预期想要的结果。
为什么会产生这么大的差距呢?
原因是因为当 DATE 函数得到了一个字符串作为输入参数的时候,它会假定这是一个有效的 DB2 日期的表示,并对其进行适当地转。
反之相反,当输入参数是数字类型时,函数会假定该参数值减 1 等于距离公元第一天(0001-01-01)的天数
2010-5-19-1=1985 单位是天 然后计算距离公元第一天(0001-01-01)之后1985天是那一年 ,所以得出的结果是0006-06-09。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics