2016-07-05 2 views
0

convert(datetime,'2015-03-06T23:59:04Z',127)에 시간대 Z와 ISO8601 날짜 변환하는 MS-SQL 날짜 시간을 산출 04.000계산 열 사양 SQL의 날짜

우리라는 실제의 열이있는 경우 [ isodate]를 varchar (20) 또는 char (20)으로 정의하면 해당 변환을 Compute Column Specification SQL Server 2012의 수식으로 사용할 수 있습니까?

나는 점점 오전 "오류 수식을 확인하는"이러한 수식의 eithe로는 : 당신은 그냥 구문 오류를 가지고있는 것처럼

(convert([datetime],[isodate],127))
(convert(datetime,[isodate],127))

+0

[datetime] 주변의 괄호를 제거하십시오. 작동하지 않아야합니까? – scsimon

답변

1

것 같습니다. 공식에서 [datetime]에서 대괄호를 제거하면 트릭을 수행해야합니다.

if object_id('tempdb..#temp') is not null drop table #temp 

create table #temp (isodate varchar(20)) 

insert into #temp (isodate) values 
('2015-03-06T23:59:04Z'), 
('2016-03-04T13:59:04Z') 

select isodate, convert(datetime,[isodate],127) as DT from #temp 

--select convert(datetime,'2015-03-06T23:59:04Z',127) 
+0

나는 그것이 그랬 으면 좋겠다. 대괄호를 제거한 후에도 수식이 유효한 계산 열 지정 수식으로 거부되었습니다. – Tim

+0

은 사소한 질문처럼 보이지만 [isodate]의 모든 값을 변환 할 수 있습니까? 즉, 손상된 데이터가 없습니까? 그리고 확실하게, [isodate] 그 자체가 계산 된 컬럼이 아닙니다 (존재하는 모든 단계에서)? 나는 방금 여분의 괄호를 알아 차렸다. 그래서 이것은 다른 문장 안에 중첩되어 있다고 가정한다. – scsimon

+0

줄 바꿈을 제거하면 트릭이 나았습니다. – Tim