![](/img/trans.png)
[英]Is there a way to convert a varchar column in dd-mm-yyyy format to a date column in yyyy-mm-dd format in postgresql?
[英]PostgreSQL 9.3 : Convert `DD-MM-YYYY` into `YYYY-MM-DD`
我在函數中有以下日期,該日期屬於varchar類型,可以轉換為YYYY-MM-DD
格式。
我將v_Date作為參數傳遞給函數,並且函數內部要執行轉換。
劇本 :
DO
$$
DECLARE v_Date varchar := '16-01-2010 00:00:00';
v_SQL varchar;
BEGIN
v_SQL := 'SELECT to_date('''|| v_Date ||''',''YYYY-MM-DD'')';
RAISE INFO '%',v_SQL;
EXECUTE v_SQL;
END;
$$
上面的腳本准備以下腳本:
INFO: SELECT to_date('16-01-2010 00:00:00','YYYY-MM-DD')
這給了我結果:
0021-07-02
但是預期結果應該是:
2010-01-16
SELECT to_date('16 -01-2010 00:00:00','YYYY-MM-DD')
您的模式yyyy-mm-dd
與輸入的dd-mm-yyyy hh:mi:ss
不匹配。 您需要使用dd-mm-yyyy
將該輸入轉換為正確的日期(您可以省略其他時間部分)
SELECT to_date('16-01-2010 00:00:00','dd-mm-yyyy');
date
值的格式化輸出取決於您的SQL客戶端和(或)LC_TIME的當前設置。 為了確保獲得yyyy-mm-dd
輸出,您必須使用to_char()
格式化結果date
SELECT to_char(to_date('16-01-2010 00:00:00','dd-mm-yyyy'), 'yyyy-mm-dd');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.