Какво е независимото от DB (работи както за mysql, така и за sqlite3) решение за изчисляване на дни между две дати в SQL?

Datediff е функцията, използвана в mysql и sql сървъра за изчисляване на дните между две дати. Datediff обаче не работи в sqlite3. Какъв е независимият от DB (работи както за mysql, така и за sqlite3) начин за изчисляване на дни между две дати? Много благодаря.


person user938363    schedule 17.04.2012    source източник
comment
Решението ANSI SQL (т.е. независимо от DB) би било date1 - date2, но нито една от СУБД, които споменахте, не е съвместима със стандарта, когато става въпрос за обработка на дати, така че ще трябва да поддържате различен SQL за различни СУБД.   -  person a_horse_with_no_name    schedule 17.04.2012
comment
sqlite съхранява датата като низ или int или реален datatype3. можете да използвате unixtimestamp и в двете.   -  person microo8    schedule 17.04.2012


Отговори (1)


Ако управлявате вашите типове данни по правилния начин, възможно е изваждането да работи правилно и по един и същи начин във всичките 3 системи.

Тъй като SQLite няма тип данни datetime, можете да съхранявате стойностите на датата като цели числа и да изваждате датите нормално.

MSSQL позволява изваждане на datetime и когато се прехвърля като int, ще ви даде броя на дните между тях.

MySQL трябва да позволява изваждане на типове данни DATE. (Можете да проверите това.)

person David Manheim    schedule 01.05.2012