두 테이블 사이의 행 선택 1503381651490
과 같이 bigInt 유형으로 날짜를 저장하는 MSSQL Server 테이블이 있습니다. 이제 2017-01-01
에서 2017-03-28
사이의 created_time
행을 선택하고 싶습니다. 어떻게해야합니까?bigint with adddate
감사합니다.
두 테이블 사이의 행 선택 1503381651490
과 같이 bigInt 유형으로 날짜를 저장하는 MSSQL Server 테이블이 있습니다. 이제 2017-01-01
에서 2017-03-28
사이의 created_time
행을 선택하고 싶습니다. 어떻게해야합니까?bigint with adddate
감사합니다.
예 I는이 문제를 해결하여 :
SELECT "chdt"."CHANGEID" AS "Change ID", "chdt"."CREATEDTIME" AS "Created
Date", "chdt"."TITLE" AS "Title" FROM "ChangeDetails" "chdt"
WHERE dateadd(s,("chdt"."CREATEDTIME"/1000),'1970/01/01') >= '2017/10/01'
AND (dateadd(s,("chdt"."CREATEDTIME"/1000),'1970/01/01') <= '2017/10/05')
다른 사람이 제안했듯이 올바른 형식으로 datetime을 저장해야합니다.
select *
from your_table
where created_time between datediff(minute,'1990-1-1','2017-01-01')
and datediff(minute,'1990-1-1','2017-03-28')
먼저 당신이 필터를 적용하기 위해 Date
에 bigint
필드를 변환해야합니다 : 저장된 값을 가정 지금은
는 UNIX 타임 스탬프, 당신은 유닉스 타임 스탬프에 필요한 날짜 범위를 변환 할 수 있습니다 . 다음 변환을 사용할 수 있습니다.
10000000 * 24 * 60 * 60 = 864000000000
SELECT CAST((bigintvalue - 599266080000000000)/864000000000 AS DATETIME) AS DateTimeConv;
그런 다음 변환 된 날짜 입력란에 필터를 적용 할 수 있습니다.
SELECT CAST((created_time - 599266080000000000)/864000000000 AS DATETIME) AS DateTimeConv
FROM Table1
WHERE DateTimeConv < MaxDateValue
AND DateTimeConv > MinDateValue;
식을 데이터 형식 datetime으로 변환하는 산술 오버플로 오류입니다. –
여기서 [시간 값에 BIGINT로부터 전환] (시작 https://stackoverflow.com/questions/3650320/convert-from- bigint-to-datetime-value) – Valerica
올바른 열 데이터 형식을 사용하십시오 ... – jarlh
@jarlh이 DB는 나를위한 것이 아닙니다 –