在sql中将字符串转换为日期

在sql中将字符串转换为日期,sql,oracle,date,type-conversion,timestamp-with-timezone,Sql,Oracle,Date,Type Conversion,Timestamp With Timezone,我需要将sql developer中的varchar格式的2014-11-18T14:08:43+00:00转换为date格式,以便过滤一些条目 我试过了 截止日期(上次更新日期'YYYY-MM-DD') 但它给出了一个错误 ORA-01830:日期格式图片在转换整个输入之前结束 绳子 请帮忙。您可以这样使用它 declare @varDate as nvarchar(50) = '2014-11-18T14:08:43+00:00' select CAST(substring(@varDat

我需要将sql developer中的varchar格式的2014-11-18T14:08:43+00:00转换为date格式,以便过滤一些条目

我试过了

截止日期(上次更新日期'YYYY-MM-DD')

但它给出了一个错误

ORA-01830:日期格式图片在转换整个输入之前结束 绳子


请帮忙。

您可以这样使用它

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

select CAST(substring(@varDate,0,CHARINDEX('T',@varDate)) as date)
declare @Date as nvarchar(100) = '2014-11-18T14:08:43+00:00'
SELECT CONVERT(DATE,@Date) AS Date
或者选择这个在这个问题上被接受的答案

你可以试试这个

Select CAST ('2014-11-18T14:08:43+00:00' as date)
假设您在SQL Server 2012中

ORA-01830:日期格式图片在转换整个输入字符串之前结束。 截止日期(上次更新日期“YYYY-MM-DD”)

2014-11-18T14:08:43+00:00
是时间戳,而不是日期

首先,永远不要将日期/TIMSTAMP存储为字符串。这是一个数据库设计缺陷

无论如何,您可以将其转换为带有时区的时间戳

比如说,

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>

以防万一,您不是有意安装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

为什么您的约会对象是colunm varchar?您运行的是什么版本的sql server?对我来说,它说to_date不承认DSQL服务器返回ORA错误代码吗?非常奇怪。你也需要时间还是只需要日期?@Isha你怎么会在
sql server
中得到一个
ORA
错误?@Isha尝试这个解决方案sql server语法如何适用于Oracle数据库?@LalitKumarB我也很奇怪,或者当标签是sql server时,她怎么会出现ORA错误,这确实让人困惑,它以前是用
sql
sqlserver
标记的,后来又被标记了edited@Isha
ORA
错误证明您的数据库是
Oracle
而不是
sqlserver