%Y-%m-%d ...
으로 시간 차이를 표시 할 수 없으며 최소한 날짜 형식이 아닙니다. 하루 차이를 어떻게 표현합니까? (0000-00-00 ...
은 유효한 날짜가 아닙니다). 또한 한 달은 무엇이 될까요? 30 일? 31 일? 23423432 일?
차이를 초로 유지하고 제시 할 때 필요에 따라 변경하십시오.
이
sqlite> select datetime(strftime('%s','2012-01-01 12:00:00')
- strftime('%s','2004-01-01 02:34:56') - 62167305600, 'unixepoch');
0007-12-31 09:25:04
나는 OP에 의해 downvote이 정당화되지 않은 느낌이 경우에도, 나 자신을 멈출 수 없다 : 한편
, 당신은 정말 당신이 요청으로 수행하려는 경우, 여기 하나의 방법입니다 왜 내가 위에 언급 한 것이 아주 좋은 옵션이 아닌지 분명히 설명하는 이유는 시간 차이가 1 일 미만일 때 "잘못된"결과를 반환하기 때문입니다. 이유는 위에 쓴 것에 암시되어 있습니다 : 0000-00-00 ...
과 같은 날짜가 없으므로 대신 datetime 반환 된 값은 음수 지역입니다. -001-12-31 ...
여기에 438:53:45
을 얻는 방법이 있습니다. 하지만 매우 복잡입니다 :
earlier date: d1
later date: d2
select
cast(
(strftime('%s', d2) - strftime('%s', d1))/86400 * 24
+ cast(strftime("%H", time(strftime('%s', d2)
- strftime('%s', d1), 'unixepoch'))
as int)
as text)
|| ":"
|| substr(time(strftime('%s', d2) - strftime('%s', d1), 'unixepoch'), 4);
예 :
이 좋지 않다
d1 = '2004-01-01 02:34:56'
d2 = '2012-01-01 12:00:00'
sqlite> select cast((strftime('%s','2012-01-01 12:00:00') - strftime('%s','2004-01-01 02:34:56'))/86400 *24 + cast(strftime("%H", time(strftime('%s','2012-01-01 12:00:00') - strftime('%s','2004-01-01 02:34:56'), 'unixepoch')) as int) as text)
|| ":"
|| substr(time(strftime('%s','2012-01-01 12:00:00') - strftime('%s','2004-01-01 02:34:56'), 'unixepoch'), 4);
70137:25:04
'선택 날짜 (의 strftime ('% S ','2004-01-01 12시 0분 0초 ') - strftime ('% s', '2004-01-01 02:34:56') - 62167305600, 'unixepoch');는'-001-12-31 09 : 25 : 04'을 반환합니다. 그러나 MySQL의'timediff (now(), '2012-07-01 12:00:00')'->''438 : 53 : 45'처럼 출력을 얻으려면 어떻게해야합니까? – microo8
확신하기 위해, 당신은 downvote하지 않았습니까? –
예 제가 downvoted있다, 대답은 정확하지 않습니다. – microo8