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');
我有以下日期,它是 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');