
Когато се работи с данни, често срещано предизвикателство включва изчисляване на различни времеви интервали, като разликата в дни, месеци или години между две дати. Тези изчисления са неразделна част от множество приложения като управление на заплати, планиране на проекти и дори при проследяване на растежа на дадено явление във времето. SQL, често използван език в управлението на бази данни, предоставя особено убедителна рамка за решаване на тези предизвикателства. Един такъв проблем, който изследваме днес, е как да получим разликата в датата в часове с помощта на SQL.
Получаване на разликата в датата в часове: Решението
SQL изразът, необходим за изчисляване на разликата в часовете между две дати, не е твърде сложен. Функцията DATEDIFF в SQL е вашият най-добър приятел в тези ситуации.
SELECT DATEDIFF(HOUR, '2009-05-04 06:05:00', '2009-05-05 12:01:00');
В този пример „2009-05-04 06:05:00“ и „2009-05-05 12:01:00“ са двете дати. HOUR е единицата, в която искаме разликата, а DATEDIFF е функцията, която ще изчисли тази разлика.
Стъпка по стъпка Обяснение на кода
Функцията DATEDIFF работи, като приема три параметъра. Първият параметър е единицата време, в която трябва да се изчисли разликата, може да бъде година, месец, ден или дори часове, както в нашия случай. Вторият и третият параметър са датите, между които се определя количествено разликата.
- DATEDIFF: Това е вградена функция в SQL, използван за намиране на разликата между две дати.
- ЧАС: Тук уточняваме, че искаме нашата разлика в часовете. Други алтернативи включват ВТОРА, МИНУТА, ДЕН, МЕСЕЦ и ГОДИНА.
- „ГГГГ-ММ-ДД Ч:М:С“: Тук посочваме датите. SQL разпознава датите във формат „година-месец-ден час:минута:секунда“.
Когато SQL операторът се изпълнява, той първо изважда втората дата от първата (което означава „2009-05-04 06:05:00“ от „2009-05-05 12:01:00“) и връща разликата в условия на часовете.
Същият проблем, различни библиотеки или функции
Въпреки че DATEDIFF е често използвана функция, в SQL има много други библиотеки и функции за изчисляване на разликите в датите. Например можете да използвате функцията TIMESTAMPDIFF, която работи по много подобен начин на DATEDIFF.
Освен това библиотеки като MySQL предоставят и други удобни функции като TIMEDIFF за изчисляване на разликата между две времена и TO_DAYS за намиране на разликата в дни между две дати. Всички тези функции служат, за да направят SQL многофункционален и гъвкав като език за програмиране и мощен инструмент за обработка на данни за дата и час.
Разбирането на часовите разлики между датите и как да ги изчислите е често срещано изискване в SQL и други езици за програмиране. Това е стълб на управление на данните за дата и час и следователно много важно умение за всеки разработчик.