π ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL? ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL?
Π SQL Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DATEDIFF() Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π½ΡΡ , ΡΠ°ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΡΡΠ°Ρ ).
SELECT DATEDIFF(unit, start_date, end_date) AS date_difference;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ unit - ΡΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ, start_date - ΡΡΠΎ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π΄Π°ΡΠ°, Π° end_date - ΡΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ Π΄Π°ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ Π² Π΄Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ:
SELECT DATEDIFF(day, '2022-01-01', '2022-01-05') AS date_difference;
ΠΡΠΎ Π²Π΅ΡΠ½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ Π² Π΄Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ 1 ΡΠ½Π²Π°ΡΡ 2022 Π³ΠΎΠ΄Π° ΠΈ 5 ΡΠ½Π²Π°ΡΡ 2022 Π³ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π²Π½Π° 4.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΡΠ΅Π±Π΅, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL. ΠΡΠ° ΡΠ΅ΠΌΠ° ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠ΅Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠ°, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠ΅Π±ΡΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°Π΄Π°Ρ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π΄Π°Π²Π°ΠΉ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL. ΠΠ±ΡΡΠ½ΠΎ, Π² SQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
DATE
, DATETIME
ΠΈΠ»ΠΈ TIMESTAMP
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Ρ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ²ΠΎΠΈΡ
ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
.
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DATEDIFF
. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π²Π΅ Π΄Π°ΡΡ, ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ DATEDIFF
Π΄Π»Ρ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ:
SELECT DATEDIFF('2022-01-01', '2021-01-01') AS DateDiff;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ 1 ΡΠ½Π²Π°ΡΡ 2022 Π³ΠΎΠ΄Π° ΠΈ 1 ΡΠ½Π²Π°ΡΡ 2021 Π³ΠΎΠ΄Π°. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡ Π²ΡΠ±ΡΠ°Π». Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π½Π΅ΠΉ.
Π’Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ³ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ "hour" (ΡΠ°Ρ), "minute" (ΠΌΠΈΠ½ΡΡΠ°), "month" (ΠΌΠ΅ΡΡΡ) ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
SELECT DATEDIFF(hour, '2022-01-01 12:00:00', '2022-01-01 10:00:00') AS DateDiff;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ 12:00 ΠΈ 10:00 1 ΡΠ½Π²Π°ΡΡ 2022 Π³ΠΎΠ΄Π° Π² ΡΠ°ΡΠ°Ρ .
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DATE_FORMAT
Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%Y Π³ΠΎΠ΄(Π°), %m ΠΌΠ΅ΡΡΡΠ΅Π² ΠΈ %d Π΄Π½Π΅ΠΉ') AS DateDiff;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅ΠΉ Π΄Π°ΡΠΎΠΉ ΠΈ Π΄Π°ΡΠΎΠΉ, ΠΎΡΠ½ΡΡΠΎΠΉ Π½Π° 1 Π³ΠΎΠ΄. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ "<ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π»Π΅Ρ>, <ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΡΠ΅Π²> ΠΈ <ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΄Π½Π΅ΠΉ>".
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ DATEDIFF
. Π£ΡΡΠΈ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ Π‘Π£ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π‘Π£ΠΠ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΡΠ΅Π±Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² SQL. ΠΡΠ»ΠΈ Ρ ΡΠ΅Π±Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ ΡΡ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡΡ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΡ β Ρ Π²ΡΠ΅Π³Π΄Π° Π³ΠΎΡΠΎΠ² ΠΏΠΎΠΌΠΎΡΡ!
Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ SQL!