将字符串转换为 sql 中的日期
Converting string to date in sql
我需要将 2014-11-18T14:08:43+00:00 转换为 sql 开发人员中的 varchar 格式,以便过滤一些条目。
我试过了
to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')
但是报错
ORA-01830: date format picture ends before converting entire input
string.
请帮忙..
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
或者选择这个问题接受的答案
ORA-01830: date format picture ends before converting entire input string / Select sum where date query
你可以试试这个;
Select CAST ('2014-11-18T14:08:43+00:00' as date)
假设您在 SQL Server 2012
ORA-01830: date format picture ends before converting entire input string.
to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')
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>
以防万一您不是要搭建 sql 服务器而是需要使用 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
我需要将 2014-11-18T14:08:43+00:00 转换为 sql 开发人员中的 varchar 格式,以便过滤一些条目。
我试过了
to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')
但是报错
ORA-01830: date format picture ends before converting entire input string.
请帮忙..
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
或者选择这个问题接受的答案
ORA-01830: date format picture ends before converting entire input string / Select sum where date query
你可以试试这个;
Select CAST ('2014-11-18T14:08:43+00:00' as date)
假设您在 SQL Server 2012
ORA-01830: date format picture ends before converting entire input string. to_date(LAST_UPDATE_DATE,'YYYY-MM-DD')
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>
以防万一您不是要搭建 sql 服务器而是需要使用 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