Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL无法使用to_date()分析到日期的字符串_Sql_Postgresql - Fatal编程技术网

PostgreSQL无法使用to_date()分析到日期的字符串

PostgreSQL无法使用to_date()分析到日期的字符串,sql,postgresql,Sql,Postgresql,我有一个非常标准的日期作为字符串,需要解析为日期类型: "2016-06-01T23:34:25+00:00" 我使用'YYYY-MM-DDTHH24:MI:SS'作为格式掩码,此查询尝试获取和解析日期: SELECT to_date('last_updated_on', 'YYYY-MM-DDTHH24:MI:SS') AS last_updated_on FROM locations limit 1 发生的情况是,我得到了以下错误: ERROR: invalid value ":2"

我有一个非常标准的日期作为字符串,需要解析为日期类型:

"2016-06-01T23:34:25+00:00"
我使用
'YYYY-MM-DDTHH24:MI:SS'
作为格式掩码,此查询尝试获取和解析日期:

SELECT to_date('last_updated_on', 'YYYY-MM-DDTHH24:MI:SS') 
AS last_updated_on FROM locations 
limit 1
发生的情况是,我得到了以下错误:

ERROR: invalid value ":2" for "MI"
SQL state: 22007
Detail: Value must be an integer.
我查阅了所有的文档,试图找出为什么会发生这种情况,我完全感到困惑


我正在使用PostgreSQL 9.4将格式字符串中的
T
包围起来。如果需要保留日期的时间部分,请使用
来\u timestamp()

转换为带有时间戳的日期

SELECT to_timestamp('last_updated_on', 'YYYY-MM-DD"T"HH24:MI:SS') 
AS last_updated_on FROM locations 
limit 1

问题似乎是字符串中间的
T
n。这似乎是两项工作:

SELECT to_date(replace('2016-06-01T23:34:25+00:00', 'T', ''),  'YYYY-MM-DD HH24:MI:SS')
但是,您可能希望
使用\u timestamp()


还要注意的是,在上一次更新的日期前后有单引号。这意味着它被解释为字符串,而不是列名。

。谢谢是的,我在写问题的时候把上次更新的代码放进去了。这里的值来自一个jsonb值,我把它拿出来试图澄清问题的含义。谢谢!我怀疑
T
是罪魁祸首,但不知道如何将其定义为字面上的“T”
SELECT to_date(replace('2016-06-01T23:34:25+00:00', 'T', ''),  'YYYY-MM-DD HH24:MI:SS')
SELECT to_timestamp('2016-06-01T23:34:25+00:00', 'YYYY-MM-DD HH24:MI:SS')