PostgreSQL 9.3:将'DD-MM-YYYY'转换为'YYYY-MM-DD'`
在我的函数中,我有以下varchar类型的日期转换为格式PostgreSQL 9.3:将'DD-MM-YYYY'转换为'YYYY-MM-DD'`,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,在我的函数中,我有以下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; E
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
选择截止日期('16-01-2010 00:00:00','YYYY-MM-DD')
您的模式与输入不匹配。您需要使用dd-mm-yyyy
将输入转换为正确的日期(您可以省去额外的时间部分)
date
值的格式化输出取决于您的SQL客户端和(或)LC\U时间的当前设置。为确保获得yyyyy-mm-dd
输出,必须使用To_char()
选择截止日期('16-01-2010 00:00:00','YYYY-MM-DD')
您的模式与输入不匹配。您需要使用dd-mm-yyyy
将输入转换为正确的日期(您可以省去额外的时间部分)
date
值的格式化输出取决于您的SQL客户端和(或)LC\U时间的当前设置。为确保获得yyyyy-mm-dd
输出,必须使用To_char()
SELECT to_date('16-01-2010 00:00:00','dd-mm-yyyy');
SELECT to_char(to_date('16-01-2010 00:00:00','dd-mm-yyyy'), 'yyyy-mm-dd');