【问题标题】:how to insert text to date field in oracleoracle中如何在日期字段中插入文本
【发布时间】:2011-08-22 13:32:17
【问题描述】:

如何插入(文本)时间:09:44:02 和日期:11/09/2007 到 Oracle 中归档的日期?

我在 oracle 中有字段 Tdate(日期)和 Ttime(日期)

提前致谢

【问题讨论】:

    标签: oracle


    【解决方案1】:

    由于日期是一个时间点,您实际上应该只使用一个字段:

    insert into your_table (dt) 
       values (to_date ('11/09/2007 09:44:02', 'dd/mm/yyyy hh24:mi:ss'));
    

    由于您的模型包含两列,您可以使用:

    insert into your_table (Tdate, Ttime)
       values (to_date('11/09/2007', 'dd/mm/yyyy'),
               to_date ('09:44:02', 'hh24:mi:ss'));
    

    但是请注意,默认情况下,您的 Ttime 列将包含可能是错误/不相关的日期信息,因为您不能只存储时间组件:

    SQL> select to_char(tdate), to_char(ttime) from your_table;
    
    TO_CHAR(TDATE)      TO_CHAR(TTIME)
    ------------------- -------------------
    11/09/2007 00:00:00 01/08/2011 09:44:02
    

    【讨论】:

      【解决方案2】:
      INSERT INTO <table>
      (date_column)
      VALUES
      (TO_DATE(tdate||' '||ttime, 'DD/MM/YYYY HH24:MI:SS'))
      /
      

      如果是PL/SQL

      DECLARE
         v_date_field DATE;
      BEGIN
         v_date_field := TO_DATE(tdate||' '||ttime, 'DD/MM/YYYY HH24:MI:SS');
         --
         INSERT INTO <table>
         (date_column)
         VALUES
         (v_date_field);
      END;
      /
      

      之后别忘了提交 :-)

      【讨论】:

        【解决方案3】:
        insert into tablename(tdate) 
        values(to_date('11/09/2007 09:44:02','dd/mm/yyyy hh24:mi:ss'))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多