在db2数据库如何转换从系统获取到的日期格式

如题..现有表a,字段date1为char(值为20110101,20140101,20140118等)我想要在a表中查询出所有date1不等于前一天日期的所有记录我的语... 如题..现有表a,字段date1为char(值为20110101,20140101,20140118等)
我想要在a表中查询出所有date1不等于前一天日期的所有记录
我的语句为
select * from a where to_date(date1,'yyyy-mm-dd') <>(select current date -1 day from sys.ibm.sysdummy1)
运行后提示我<>操作的数据类型不兼容
然后我直接运行了select current date -1 day from sys.ibm.sysdummy1 发现查询出的日期格式为2014-1-18
而我 to_date(date1,'yyyy-mm-dd') 出来的日期为2014-01-18
请问该如何解决?
展开
 我来答
TUBER727
推荐于2017-09-21 · TA获得超过428个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:113万
展开全部
select current date -1 day from sysibm.sysdummy1
这种日期类型是:
2014-01-18
values to_date('20140101','yyyy-mm-dd')
2014-01-01 00:00:00.0
是timestamp格式,所以格式不一样

你可以修改一下你的语句:
select * from a where to_char(date1,'yyyy-mm-dd') <>(current date -1 day);

试试可不可以。
bjddd192
2014-01-20 · TA获得超过416个赞
知道小有建树答主
回答量:496
采纳率:0%
帮助的人:436万
展开全部
建议采用转换为字符串来比较,如:
select replace(char(current date, ISO),'-','') as result
from sysibm.sysdummy1
where replace(char(current date - 1 day, ISO),'-','') <> '20140120'

Datetime to Character:
>>-CHAR--(--datetime-expression--+--------------+--)----------->< '-,--+-ISO---+-' +-USA---+ +-EUR---+ +-JIS---+ '-LOCAL-'

to_date字符串转换貌似要到秒,如:
select to_date('1999-12-31 00:00:00','YYYY-MM-DD HH24:MI:SS') from sysibm.sysdummy1;

TO_DATE scalar function
>>-TO_DATE--(--string-expression--,format-string--)------------><
The schema is SYSIBM.
The TO_DATE function returns a timestamp from a character string that has been interpreted using a character template.
TO_DATE is a synonym for TIMESTAMP_FORMAT.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式