tnt4913 发表于 2010-04-16 13:28

informix数据库sql语句时间处理问题请教

各位好,我目前用形如:
unload to "/home/omcadmin/omcI20071227.txt"
select *
from tablename
的语句从informix中取数据,但是这种方式取出来的数据默认是用“|”作为字段分隔符的,我想用制表符tab作为字段分隔符,并且数据库中取出的时间格式为“2010-04-15 20:00”这种格式,我想分为“2010-04-15” “20”(或20:00)这两个字段,该怎么做啊?
请注意,一个是字分隔符方面的问题一个是时间处理方面的问题,烦请高手赐教啊,在此对各位现行谢过。

liaosnet 发表于 2010-04-16 14:07

unload to fileDELIMITER " "
select * from tab

tnt4913 发表于 2010-04-16 15:00

回复 2# liaosnet


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

liaosnet 发表于 2010-04-16 15:03

回复liaosnet


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


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

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

    select col, col            --col替换掉你的时间字段名字..

tnt4913 发表于 2010-04-16 15:09

回复 4# liaosnet


    谢谢,我这就去试下:P

tnt4913 发表于 2010-04-16 15:44

回复 4# liaosnet


    大哥:刚才试了下,我那个日期时间位于bss_datetimes表中,字段名为“date_and_time”,我在查询中的表达为:
selectbss_datetimes.date_and_timeas date,bss_datetimes.date_and_timeas 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”
   这是怎么回事啊?盼望解答,是不是字段的数据类型的问题啊?

liaosnet 发表于 2010-04-16 15:47

本帖最后由 liaosnet 于 2010-04-16 15:52 编辑

回复liaosnet


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


    改下吧... 以为你是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)

tnt4913 发表于 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
呵呵,但是同样向你表示最诚挚的谢意哈,这也是在你的一步一步启发下才做到的,哈哈
页: [1]
查看完整版本: informix数据库sql语句时间处理问题请教