는
CONVERT(datetime,OldDate ,103)
가 "103"형식이 dd/mm/yyyy
여기에 편집
많은 예제와 같이 좋은입니다 변환기를 알려줍니다 사용해보십시오 당신은 m/d/y와 d/m/y 데이터를 가지고있는 것 같습니다. 이것은 당신이 할 수있는 최선의 방법입니다. :
DECLARE @Table1 table (PK int, OldDate nvarchar(255) null)
DECLARE @Table2 table (PK int, NewDate datetime not null)
INSERT @Table1 VALUES (1,'26/07/03')
INSERT @Table1 VALUES (2,null)
INSERT @Table1 VALUES (3,null)
INSERT @Table1 VALUES (4,'23/07/2003')
INSERT @Table1 VALUES (5,'7/26/2003')
INSERT @Table1 VALUES (6,null)
INSERT @Table1 VALUES (7,'28/07/03')
SET DATEFORMAT dmy
INSERT INTO @Table2
(PK, NewDate)
SELECT
PK,
CASE
WHEN ISDATE(OldDate)=1 THEN OldDate
ELSE '1/1/1900'
END
FROM @Table1
SET DATEFORMAT mdy
UPDATE t2
SET NewDate=OldDate
FROM @Table2 t2
INNER JOIN @Table1 t1 ON t2.PK=t1.PK
WHERE t2.NewDate='1/1/1900' AND ISDATE(OldDate)=1
SELECT * FROM @Table2
OUTPUT : 당신이 NOT NULL로 NewDate을 가지고 있기 때문에
PK NewDate
----------- -----------------------
1 2003-07-26 00:00:00.000
2 1900-01-01 00:00:00.000
3 1900-01-01 00:00:00.000
4 2003-07-23 00:00:00.000
5 2003-07-26 00:00:00.000
6 1900-01-01 00:00:00.000
7 2003-07-28 00:00:00.000
(7 row(s) affected)
나는 '1900'을 사용했다.
예제 데이터에 대한
은 다음과 같아야합니다 26/07/03 NULL NULL 23/07/2003 7/26/2003 NULL 28/07/03 – steven