【问题标题】:pgSQL : insert date format (leading zeros)?pgSQL:插入日期格式(前导零)?
【发布时间】:2011-10-07 03:04:56
【问题描述】:

我想在我的 pg 数据库中插入一个日期,但我不知道正确的格式是什么,而且 pg 帮助也没有真正的帮助。

我的日期是 d-m-yyyy 格式。所以前导零被省略了。

如何正确插入,是否有添加前导零的功能(pg 或 php)?

【问题讨论】:

标签: php sql forms postgresql


【解决方案1】:

检查to_date(text, text) 函数(Table 9-21 包含所有支持的模式):

SELECT to_date('1-9-2011', 'DD-MM-YYYY');
  to_date   
------------
 2011-09-01
(1 row)

如您所见,输出日期中正确添加了前导零。

【讨论】:

    【解决方案2】:
    INSERT INTO TheTable (the_date) VALUES ('yyyy-mm-dd')
    

    是SQL中的正确顺序

    $psql_str = date('yyyy-mm-dd', date_parse_from_format('d-m-yyyy', $date_str));
    

    将您的 $date_str 转换为预期格式。

    【讨论】:

      【解决方案3】:

      最好的办法是以明确的格式插入日期,因为无论服务器可能有任何设置,这都能保证始终有效。推荐的格式是 YYYY-MM-DD。您可以使用此功能将日期更改为该格式:

      function convertDate($old) {
          $date = explode('-', $old);
          if (strlen($date[0]) == 1)
              $date[0] = '0' . $date[0];
          if (strlen($date[1]) == 1)
              $date[1] = '0' . $date[1];
          $new = date[2] . '-' . $date[1] . '-' . $date[0];
          return $new;
      }
      

      其他数据格式也是可能的,但不太推荐使用,因为它们依赖的设置可能因一台服务器而异。欲了解更多信息,请查看the relevant section of the documentation

      【讨论】:

        【解决方案4】:

        实际上,如果您确认 DateStyle 设置为 DMY(或者,更好的是,“ISO,DMY”),那么您无需执行任何操作

        postgres=# create table test_table (date_field date);
        CREATE TABLE
        
        postgres=# show DateStyle;
         DateStyle 
        -----------
         ISO, MDY
        (1 row)
        
        postgres=# set DateStyle='ISO, DMY';
        SET
        
        postgres=# insert into test_table (date_field) values ('2-4-2011');
        INSERT 0 1
        
        postgres=# select * from test_table;
         date_field 
        ------------
         2011-04-02
        (1 row)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-15
          • 1970-01-01
          • 2015-06-06
          • 2022-12-10
          • 1970-01-01
          相关资源
          最近更新 更多