2

我需要将我的 sql 开发人员中的 varchar 中的2014-11-18T14:08:43+00:00转换为日期格式,以便过滤一些条目。

我试过了

to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')

但它给出了一个错误

ORA-01830: 日期格式图片在转换整个输入字符串之前结束。

请帮助..

4

5 回答 5

0
declare @varDate as nvarchar(50) = '2014-11-18T14:08:43+00:00'

select CAST(substring(@varDate,0,CHARINDEX('T',@varDate)) as date)
于 2015-06-09T06:51:55.833 回答
0

要么你可以像这样使用它

declare @Date as nvarchar(100) = '2014-11-18T14:08:43+00:00'
SELECT CONVERT(DATE,@Date) AS Date

或者去这个问题中接受的答案

ORA-01830: 日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和

于 2015-06-09T06:57:11.807 回答
0

你可以试试这个;

Select CAST ('2014-11-18T14:08:43+00:00' as date)

假设您使用的是 SQL Server 2012

于 2015-06-09T07:04:15.913 回答
0

ORA-01830: 日期格式图片在转换整个输入字符串之前结束。to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')

2014-11-18T14:08:43+00:00TIMESTAMP而不是DATE

首先,您永远不应该将DATE/TIMSTAMP存储为string。这是一个数据库设计缺陷。

无论如何,您可以将其转换为TIMESTAMP WITH TIMEZONE

例如,

SQL> SELECT to_timestamp_tz('2014-11-18T14:08:43+00:00',
  2                         'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM')
  3                         AS tm_stamp
  4  FROM dual;

TM_STAMP
----------------------------------------------------------------
18-NOV-14 02.08.43.000000000 PM +00:00

SQL>
于 2015-06-09T07:14:34.417 回答
0

以防万一您不是要安装 sql server 而是需要使用 oracle(看到您正在使用 to_date 并且您遇到了 ora 异常),我为日期和时间戳(无毫秒)添加了一个快速的日期时间转换你的日期格式:

SELECT to_Date(concat
               (substr
                (myvar,0,10),
                concat(' ',
                       substr(myvar,12,8)
                      )
               ),'YYYY-MM-DD HH24:mi:ss') AS mydate
FROM mytable

小提琴

于 2015-06-09T07:21:34.950 回答