在sql中将字符串转换为日期
我需要将sql developer中的varchar格式的2014-11-18T14:08:43+00:00转换为date格式,以便过滤一些条目 我试过了在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
截止日期(上次更新日期'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@IshaORA
错误证明您的数据库是Oracle
而不是sqlserver
。