我想插入一個日期到我的pg數據庫中,但我不知道正確的格式是什麼,pg幫助並沒有真正的幫助。pgSQL:插入日期格式(前導零)?
我從格式爲d-m-yyyy格式的我的日期。所以前導零被省略。
如何正確插入,是否有添加前導零(pg或php)的函數?
我想插入一個日期到我的pg數據庫中,但我不知道正確的格式是什麼,pg幫助並沒有真正的幫助。pgSQL:插入日期格式(前導零)?
我從格式爲d-m-yyyy格式的我的日期。所以前導零被省略。
如何正確插入,是否有添加前導零(pg或php)的函數?
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
轉換爲expcted格式。
檢查to_date(text, text)
功能(Table 9-21包含所有支持模式):
SELECT to_date('1-9-2011', 'DD-MM-YYYY');
to_date
------------
2011-09-01
(1 row)
正如你看到的前導零的正確輸出添加日期。
要做的最好的事情是以明確的格式插入日期,因爲無論服務器可能有什麼設置,它都能保證始終有效。推薦的格式是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。
其實,如果你確認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)
只是爲了完整性:中相關標準是[ISO 8601 *數據元素和交換格式 - 信息交換 - 日期和時間的表示*](http://en.wikipedia.org/wiki/ISO-8601)。 –