免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3828 | 回复: 7
打印 上一主题 下一主题

informix数据库sql语句时间处理问题请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-16 13:28 |只看该作者 |倒序浏览
各位好,我目前用形如:
unload to "/home/omcadmin/omcI20071227.txt"
select *
from tablename
的语句从informix中取数据,但是这种方式取出来的数据默认是用“|”作为字段分隔符的,我想用制表符tab作为字段分隔符,并且数据库中取出的时间格式为“2010-04-15 20:00”这种格式,我想分为“2010-04-15” “20”(或20:00)这两个字段,该怎么做啊?
请注意,一个是字分隔符方面的问题一个是时间处理方面的问题,烦请高手赐教啊,在此对各位现行谢过。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2010-04-16 14:07 |只看该作者
unload to file  DELIMITER " "
select * from tab

论坛徽章:
0
3 [报告]
发表于 2010-04-16 15:00 |只看该作者
回复 2# liaosnet


    你好,首先感谢您的回复,还有一个问题就是我数据库中的日期时间格式为“2010-04-15 20:00”这种格式,我想分为“2010-04-15” “20”(或20:00)这两个字段,该怎么做呢?

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2010-04-16 15:03 |只看该作者
回复  liaosnet


    你好,首先感谢您的回复,还有一个问题就是我数据库中的日期时间格式为“2010-04 ...
tnt4913 发表于 2010-04-16 15:00



    如果没记错的话,因为使用了DELIMITER " ",由于你这个时间也是以" "分隔的,那么它将也自动隔出来了,只是可能输出是 "\ " \加个空格,你把\去掉即可..

    当然更合理的是在select 中把这个分开..

    select col[1,10], col[12,16]            --col替换掉你的时间字段名字..

论坛徽章:
0
5 [报告]
发表于 2010-04-16 15:09 |只看该作者
回复 4# liaosnet


    谢谢,我这就去试下

论坛徽章:
0
6 [报告]
发表于 2010-04-16 15:44 |只看该作者
回复 4# liaosnet


    大哥:刚才试了下,我那个日期时间位于bss_datetimes表中,字段名为“date_and_time”,我在查询中的表达为:
select  bss_datetimes.date_and_time[1,10]as date,bss_datetimes.date_and_time[12,16]as time
from tab
  但是运行时报错:“305: Subscripted column (date_and_time) is not of type CHAR, VARCHAR, TEXT nor BYTES.
Error in line 3
Near character position 28”
   这是怎么回事啊?盼望解答,是不是字段的数据类型的问题啊?

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
7 [报告]
发表于 2010-04-16 15:47 |只看该作者
本帖最后由 liaosnet 于 2010-04-16 15:52 编辑
回复  liaosnet


    大哥:刚才试了下,我那个日期时间位于bss_datetimes表中,字段名为“date_and_t ...
tnt4913 发表于 2010-04-16 15:44



    改下吧... 以为你是char的,要是datetime的话要进行转换..
    substr(to_char(date_and_time,"%Y-%m-%d %H:%M"),1,10)

    substr(to_char(date_and_time,"%Y-%m-%d %H:%M"),12,5)

论坛徽章:
0
8 [报告]
发表于 2010-04-16 16:24 |只看该作者
回复 7# liaosnet


    呵呵,大哥,我刚才查了下,找到一个extend函数,也实现了这个功能,我的用法是:
extend(bss_datetimes.date_and_time,year to day) as date,
extend(bss_datetimes.date_and_time,hour to hour) as time
呵呵,但是同样向你表示最诚挚的谢意哈,这也是在你的一步一步启发下才做到的,哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP