我需要转换 2014-11-18T14:08:43 + 00:00 ,这是我的sql开发人员日期格式中的varchar,以便过滤一些条目。
我试过
to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')
但是它出错了
ORA-01830:日期格式图片在转换整个输入之前结束 字符串。
请帮助......
答案 0 :(得分:0)
declare @varDate as nvarchar(50) = '2014-11-18T14:08:43+00:00'
select CAST(substring(@varDate,0,CHARINDEX('T',@varDate)) as date)
答案 1 :(得分:0)
你可以像这样使用它
declare @Date as nvarchar(100) = '2014-11-18T14:08:43+00:00'
SELECT CONVERT(DATE,@Date) AS Date
或者选择此问题中接受的答案
答案 2 :(得分:0)
你可以试试这个;
Select CAST ('2014-11-18T14:08:43+00:00' as date)
假设您使用的是SQL Server 2012
答案 3 :(得分:0)
ORA-01830:日期格式图片在转换整个输入字符串之前结束。 TO_DATE(LAST_UPDATE_DATE,' YYYY-MM-DD&#39)
2014-11-18T14:08:43+00:00
TIMESTAMP ,而不是 DATE 。
首先,您永远不会将 DATE / TIMSTAMP 存储为字符串。这是一个数据库设计缺陷。
无论如何,您可以将其转换为 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>
答案 4 :(得分: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