pgSQL: вставить формат даты (начальные нули)? - PullRequest
1 голос
/ 17 июля 2011

Я хочу вставить дату в свою базу данных pg, но я не знаю, какой правильный формат, и справка pg на самом деле не помогает.дм-гггг формат.Так что ведущие нули опущены.

Как я могу вставить это правильно, есть ли функция для добавления начальных нулей (pg или php)?

Ответы [ 4 ]

2 голосов
/ 17 июля 2011
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 в ожидаемый формат.

1 голос
/ 17 июля 2011

Проверка to_date(text, text) функция ( Таблица 9-21 содержит все поддерживаемые шаблоны):

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

Как видите, начальные нули правильно добавляются в выходную дату.

0 голосов
/ 17 июля 2011

На самом деле, если вы убедитесь, что для 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)
0 голосов
/ 17 июля 2011

Лучше всего вставить дату в однозначном формате, поскольку она гарантированно всегда будет работать независимо от любых настроек сервера. Рекомендуемый формат: ГГГГ-ММ-ДД. Вы можете изменить свою дату на этот формат с помощью этой функции:

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;
}

Возможны и другие форматы данных, но они менее рекомендуются, поскольку они зависят от настроек, которые могут различаться на разных серверах. Для получения дополнительной информации, ознакомьтесь с соответствующим разделом документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...