2011-05-12 8 views
6

이 질문에 가지 질문 :SQLite는 쿼리

첫째, MSSQL에, 나는

cast('5/31/2011 12:00:00 AM' as datetime) as convertedtodate 

결과 수행하여 날짜에 NVARCHAR로 변환 할 수 있습니다 : 2011-05-31 00 : 00 : 00.000

어떻게 나는 SQLite에서 그것을합니까?

둘째, MS SQL의 datediff 함수가 sqlite에 상응하는 것은 무엇입니까? 예컨대 :

datediff(Day,'5/30/2011 12:00:00 AM','5/31/2011 12:00:00 AM') as DateAge 

결과 : 1

답변

5

첫 번째 질문 (날짜 문자열을 변환)에 대답하기 위해, 대답은 "이 달려있다"입니다. SQLite는 특정 날짜 필드가 없으므로 변환 할 필요가 없습니다. 문자열 필드에 저장할 수 있습니다 (옵션은 날짜 저장을 위해 sting, real 또는 int입니다). 당신이 (1970-01-01 이후 (초)을 것이다) int로 문자열을 변환 할 경우, 당신은 너무처럼 strftime 방법을 사용합니다 :

strftime('%s','2011-05-12 01:03:00') 

를 질문의 두 번째 부분에 관해서는 (두 날짜의 차이)를 사용하면 SQLite에서 다음 코드를 사용하게됩니다.

strftime('%s','2011-05-12 01:03:00') - strftime('%s','2011-05-08 11:54:09') 

이렇게하면 두 날짜 사이의 시간을 초 단위로 나타냅니다. 이 정보로 더 많은 것을 할 수 있으며, SQLite에서 찾고있는 것을 정확히 얻을 수 있습니다. -

http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions

http://www.sqlite.org/datatype3.html

+0

나는 이것을 사용하여 시도하지만 ... 라이언 @ 존 – BizApps

+0

를 결과를 볼 수 sqlite가 관리를 work..use하지 않습니다 여기에 당신을 도울 것입니다 몇 리소스입니다 그게 효과가 없다는게 무슨 소리 니? 나는 그것을 시도하고 그것은 나를 위해 일했다. 첫 번째 날짜는 UNIX 날짜 형식으로 변환되고 두 번째 날짜는 두 날짜 사이의 초 수를 입력합니다. 이 정보는 설명서에서 바로 가져 오므로 어떤 오류가 발생했는지 알면 도움이 될 것입니다. – IAmTimCorey

+0

@john ryan - try strftime ('% s', '2011-05 ...;)'을 선택하고 그 것이 작동하는지 확인하십시오. – JasonFruit