表结构是这样的
col1     col2   col3   col4   col5   col6……
DayTime  00:00  00:10  00:20  00:30  00:40  DayTime的格式为yyyy-MM-dd即只有年月日,我想查询的时候,取DayTime的值,然后再加上后边的列名00:00等作为时间,即时间格式为yyyy-MM-dd HH:mm 这个sql语句该怎么写啊。要崩溃了

解决方案 »

  1.   

    to_date('2004-12-06 03:23:00','YYYY-MM-DD HH24:MI:SS')) 
      

  2.   

    不行啊,我得根据yyyy-MM-dd HH:mm 这个时间格式,查询HH:mm列的内容啊
      

  3.   


    即时间格式为yyyy-MM-dd HH:mm 这个sql语句该怎么写啊。
    -----------------------------
    //PL/SQL里写了个相似的LZ看看
    SQL>  select to_char(t.opendate,'yyyy-mm-dd hh24:mi') from  tbl_store t;TO_CHAR(T.OPENDATE,'YYYY-MM-DD
    ------------------------------
    2009-03-28 18:58
    2009-03-29 19:03
      

  4.   

    数据库中存储的是这种格式吗(yyyy-MM-dd HH:mm)吗?还是下面这种格式(yyyy-MM-dd ) 
      

  5.   

    数据库中列DayTime 的格式为yyyy-MM-dd
    然后列名为00:00等等
    比如说列23:10的内容为2000-10-04 23:10的数据
      

  6.   

    你可查询两个字段啊 用and 连接起来看看行不
      

  7.   

    理解错了吧,他说的是列名是时间,这列里面存的内容是日期。
    要取表的列名比较麻烦,只用一条SQL的话我认为是办不到,除非你事先已经知道列名了。我不知道你用的是什么数据库,取指定表中所有列名的sql
    Oracle: select * from all_tab_columns where table_name = 'xxx'
    SqlServer:select sys.syscolumns.name from sys.syscolumns ,sys.tables where sys.syscolumns.id = sys.tables.object_id and sys.tables.name = 'xxx' 只能先把所有列名取出来然后再拼字符串了,给你个SqlServer的例子吧,但是这个只是你的表中只有一条数据的情况,不只一条的话就得用到游标了。
    declare @day_time as String
    select @day_time = DayTime from xxx 
    select @day_time + sys.syscolumns.name from sys.syscolumns ,sys.tables where sys.syscolumns.id = sys.tables.object_id and sys.tables.name = 'xxx' and sys.syscolumns.name <> 'DayTime'
      

  8.   

    这句错了
    这列里面存的内容是日期。-->DayTime列里面村的是日期
      

  9.   

    tlowl 你好,到底要怎么做啊,能不能详细说说
      

  10.   

    照我的理解,表结构是这样的DayTime      00:00      00:10      00:20      00:30      00:40
    2009/04/09   null       null       null       null       null而你想得到的结果是2009/04/09 00:00      2009/04/09 00:10      2009/04/09 00:20      2009/04/09 00:30      2009/04/09 00:40如果是这样的话,那么取列名是非常麻烦的一件事。列名一般都存在系统表里面,也就是说不大可能通过一条SQL语句来实现你想要的结果。
    而我给你的例子中用到了存储过程,主要是定义变量。
    declare @day_time as String '在SQL中定义一个字符串变量
    select @day_time = DayTime from xxx '给变量赋值,取得是DayTime里面的值
    select @day_time + sys.syscolumns.name from sys.syscolumns ,sys.tables where sys.syscolumns.id = sys.tables.object_id and sys.tables.name = 'xxx' and sys.syscolumns.name <> 'DayTime'
    最后一个select就是取表的列名(因为我不知道你的表名是什么,所以用了xxx来表示),红色的部分就是就是在表名前面加上日期的值。这个SQL有一个限制就是你的表里面只能有一条数据,如果是一条以上的话检索出来的就不是一个值而是一列值了,一列值是没有办法赋给一个变量的。而SQL中又没有数组,这样的话你只能用游标了。如果是多条数据的话最好用临时表,就是你自己建一个表把需要的数据一条一条的插进去最后在检索这个表,返回结果集后再把这个表删掉。
    还有这个例子是SqlServer的,Oracle的语法只能你自己去查了,我这没有Oracle,我只能给你提供思路。
      

  11.   

    select to_char(t.opendate,'yyyy-mm-dd hh24:mi') from  tbl_store t; 
      

  12.   

    select to_char(sysdate,'yyyy-mm-dd hh24:mi') from dual;
      

  13.   

    我用的是在SQL语句中连接字符串的形式做的,新建了一列
    String sql= "select DateTime,DayTime,"+getcolumn().get(h)+" from (select cast(convert(nvarchar(10), DayTime, 120) + ' '+'"+getcolumTime().get(h)+"' as datetime) as DateTime,DayTime,"+getcolumn().get(h)+" from "+table+") DERIVEDTBL where (DayTime = (select max(DayTime) from "+table+" where ("+getcolumn().get(0)+" is not null)) and InstrumentID="+InstruCount.get(c)+")";