簡體   English   中英

PostgreSQL 9.3:將DD-MM-YYYY轉換為YYYY-MM-DD

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM