π’ ΠΠ°ΠΊ Π²ΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½Ρ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π² SQL? ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ
Π SQL Π΄Π»Ρ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ (-).
ΠΡΠΈΠΌΠ΅Ρ:
SELECT DATE_SUB('2022-02-10', INTERVAL 1 DAY) AS result;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ DATE_SUB() Π΄Π»Ρ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ 1 Π΄Π½Ρ ΠΈΠ· Π΄Π°ΡΡ '2022-02-10'.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ:
result
2022-02-09
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π΄Π°ΡΠ°, ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½Π°Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π²ΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½Ρ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π² SQL?
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π SQL ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π²ΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½Ρ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π² SQL.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DATEDIFF
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DATEDIFF. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π΄Π½ΠΈ, ΠΌΠ΅ΡΡΡΡ ΠΈΠ»ΠΈ Π³ΠΎΠ΄Ρ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ DATEDIFF Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ Π² Π΄Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ:
SELECT DATEDIFF(day, '2022-01-01', '2022-01-10') AS DaysDiff;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ Π² Π΄Π½ΡΡ . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π΄Π²Π΅ Π΄Π°ΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΡΠ΅ΡΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π½Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ DATEDIFF, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΡΡΡ (month) ΠΈΠ»ΠΈ Π³ΠΎΠ΄Ρ (year).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°ΡΠ°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ΅ΡΡΡ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ "-".
SELECT '2022-01-10' - '2022-01-01' AS DateDiff;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΡΠΈΡΠ°Π΅ΠΌ ΠΎΠ΄Π½Ρ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π½ΠΈΡΠ° Π² Π΄Π½ΡΡ .
ΠΡΠΈΠΌΠ΅Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ TIMESTAMPDIFF
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ TIMESTAMPDIFF.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ TIMESTAMPDIFF Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ Π² ΠΌΠΈΠ½ΡΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ:
SELECT TIMESTAMPDIFF(MINUTE, '2022-01-01 10:00:00', '2022-01-01 10:30:00') AS MinutesDiff;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ Π² ΠΌΠΈΠ½ΡΡΠ°Ρ . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π΄Π²Π΅ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΡΠ΅ΡΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠ½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΠΈ Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π² SQL ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ DATEDIFF ΠΈ TIMESTAMPDIFF. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ.