2013-04-25 2 views
1

날짜 형식으로 저장된 날짜가 한 열에 yyyy-mm-dd 인 SQL 데이터 테이블이 있습니다. bigint를 사용하여 새 열을 만들고 bigint로 날짜를 변환하고 새 열을 업데이트하는 쿼리를 작성하려고합니다. CAST를 사용해 보았는데 명시 적으로 날짜를 bigint로 변환 할 수 없다는 메시지를 받았습니다. 누군가가 SQL 수식을 사용하여 bigint로 날짜 (yyyy-mm-dd)를 변환 할 수 있습니까?SQL 데이터 업데이트 쿼리

+0

예상되는 숫자 타겟 형식은 무엇입니까? 'yyyymmdd' 또는 다른 무엇인가? 아마 유닉스 타임 스탬프? – Bjoern

+0

질문을 업데이트하십시오. – Luv

답변

1

사용중인 SQL 서버의 브랜드는 확실하지 않지만 Microsoft SQL Server에서는 변환 함수를 사용하여 이것을 달성하십시오.

(편집) 덧글의 정보를 기반으로 한 예가 추가되었습니다.

update mytable set IssueDateOAD = convert(bigint, IssueDate) + 2

경우 :

테이블이 'IssueDate'라는 날짜 열 및 IssueDateOAD라는 새로운 BIGINT 열이있는 경우, 당신은이 쿼리를 실행할 수 있습니다 : 나는 아직도 당신이 SQL 서버를 사용하고 있으리라 믿고있어 IssueDate는 날짜 형식의 문자열이 들어있는 varchar 열입니다. 먼저 날짜로 변환해야합니다. yyyy-mm-dd의 경우 convert(datetime, IssueDate, 126)을 사용할 수 있습니다 (변환을 위해 전달할 수있는 스타일 코드에 대한 설명서를 참조하십시오. 126은 ISO8601 형식의 날짜를 전달한다는 것을 의미합니다)

varchar에서 datetime으로의 변환을 포함하는 쿼리는 다음과 같습니다.

update mytable set IssueDateOAD = convert(bigint, convert(datetime, IssueDate, 126)) + 2

+0

죄송합니다. OADate 형식으로 변환하고 싶다는 점을 잊어 버렸습니다. 행운없이 CONVERT를 시도했습니다. 예제가 있습니까 – Tim

+0

SQL 서버는 1900-01-01 00:00에 시작하고 OAdate는 1899-12-30 00:00에 시작하므로 convert (bigint, getdate()를 선택하십시오.) - 2해야합니까? – EventHorizon

+0

* 더하기 * 2, 마이너스가 아닙니다. 내 의견을 편집하기에는 너무 늦었다. – EventHorizon