ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°: ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ΄Π΅ΡΡ «ΡΠ°ΡΡΡ Π΄Π°ΡΡ» — ΡΡΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (ΡΠ°ΡΡΡ Π΄Π°ΡΡ) (yy — Π³ΠΎΠ΄, mm — ΠΌΠ΅ΡΡΡ, dd — Π΄Π΅Π½Ρ), «Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π΄Π°ΡΠ°» — Π΄Π°ΡΠ° Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΈ «ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ Π΄Π°ΡΠ°» — Π΄Π°ΡΠ° ΠΊΠΎΠ½ΡΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄Π°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π°ΡΡ Π±Π΅ΡΠ΅ΠΌ Π΄Π°ΡΡ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠ΄Π΅Π½ΡΠ°, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π΄Π°ΡΡ Π±Π΅ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΡ Π΄Π°ΡΡ (ΡΡΠ½ΠΊΡΠΈΡ GetDate ()). SET @TmpDate=Convert (Varchar… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°: ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π¦Π΅Π»Ρ: Π½Π°ΡΡΠΈΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΠΠ «Microsoft SQL Server 2008» Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ «Functions» ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°ΠΏΠΊΠ΅ «Programmability» Π² ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠΈΡ. 12.1).
Π ΠΈΡ. 12.1.
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π² ΠΠ «Students», Π² ΠΏΠ°ΠΏΠΊΠ΅ «Programmability», ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΠΠ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅ «Functions» ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ «New/Scalar-valued Function». ΠΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π ΠΈΡ. 12.2.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (ΡΠΌ. Π·Π°Π½ΡΡΠΈΠ΅ 17). ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠ΄ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ (ΡΠΈΡ. 12.2):
ΠΠ±Π»Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Inline_Function_Name);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (@Param1). ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ (ΡΠΌ. Π·Π°Π½ΡΡΠΈΠ΅ 5);
Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ;
ΠΠ±Π»Π°ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
DECLARE @.
Π’Π΅Π»ΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² T-SQL;
ΠΠΎΠΌΠ°Π½Π΄Π° RETURN Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
RETURN @.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ Π² ΠΏΡΠ½ΠΊΡΠ΅ 3.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ ΡΡΠ΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½. Π ΠΎΠΊΠ½Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 12.3.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠΈΡ. 12.3):
CREATE FUNCTION [Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π΄Π½ΠΈΡ ΡΡΠ΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½] - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ «Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π΄Π½ΠΈΡ ΡΡΠ΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½» ;
@Value1 Real, @Value2, @Value3 — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Value1, Value2 ΠΈ Value3. ΠΠ°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ Int);
RETURNS Real — ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠΈΡΠ»Π° (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ Real);
DECLARE @Result Real — ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ @Result Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ Π΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ Real);
SELECT @Result=(@Value1+@Value2+@Value3)/3 — Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ @Result ;
RETURN @Result — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ @Result.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π²ΡΡΠ΅ (ΡΠΈΡ. 12.2).
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ.
(ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ) Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². Π Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «Command (s) completed successfully.». ΠΠ°ΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΌΡΡΡΡ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΎΠΊΠ½Π° Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΡΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ.
(ΠΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ) Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Ρ ΠΏΡΡΡΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SELECT dbo. Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π΄Π½ΠΈΡ ΡΡΠ΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½] (3, 5, 4) ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (ΡΠΈΡ. 12.4).
Π ΠΈΡ. 12.4.
Π Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ: 4 (ΡΠΈΡ. 12.4).
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π΄Π½Ρ ΠΌΠ΅ΡΡΡΠ° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΡ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. Π ΠΎΠΊΠ½Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ (ΡΠΈΡ. 12.5):
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΡΠΈΡ. 12.5). ΠΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π³ΡΡΠΏΠΏ ΠΊΠΎΠΌΠ°Π½Π΄:
CREATE FUNCTION [ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΌΠ΅ΡΡΡΠ°] - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ «ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΌΠ΅ΡΡΡΠ°» ;
@MyDate — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ MyDate. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Ρ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ DateTime);
RETURNS DateTime — ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π°ΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΡ (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ DateTime);
DECLARE @Year Int, DECLARE @Month Int, DECLARE @Day Int — ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ @Year, @Month ΠΈ@Day Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π³ΠΎΠ΄Π°, ΠΌΠ΅ΡΡΡΠ° ΠΈ Π΄Π½Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΡ (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ Int).
DECLARE @TmpDate VarChar (10) ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ «TmpDate» Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°ΡΡ Π² ΡΡΡΠΎΠΊΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π΄ΠΎ 10 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ VarChar (10)).
DECLARE @Result DateTime ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ «Result» Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° — Π΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π΄Π½Ρ ΠΌΠ΅ΡΡΡΠ° (Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ DateTime).
SET @Year=DatePart (yy, @MyDate), SET @Month=DatePart (mm, @MyDate), SET @Day=DatePart (dd, @MyDate) — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ½Π΅ @Year, @Month ΠΈ @Day. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ DatePart, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: DatePart (,). ΠΠ΄Π΅ΡΡ «ΡΠ°ΡΡΡ Π΄Π°ΡΡ» — ΡΡΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°ΡΡ (yy — Π³ΠΎΠ΄, mm — ΠΌΠ΅ΡΡΡ, dd — Π΄Π΅Π½Ρ), «Π΄Π°ΡΠ°» — ΡΡΠΎ Π΄Π°ΡΠ°, ΡΠ°ΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ.
IF @Month=12.
BEGIN.
SET @Month=1.
SET @Year=@Year+1.
END.
ELSE.
BEGIN.
SET @Month=@Month+1.
END.
ΠΡΡΠ΅ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: ΠΡΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΌΠ΅ΡΡΡΠ° ΡΠ°Π²Π΅Π½ 12 ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΌΠ΅ΡΡΡΠ° (@Month) ΡΠ°Π²Π½ΡΠΌ 1 ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π³ΠΎΠ΄ (@Year) Π½Π° 1, ΠΈΠ½Π°ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠ΅ΡΡΡ Π½Π° 1.
SET @TmpDate=Convert (Varchar, @Month)+'/01/'+Convert (Varchar, @Year), SET @Result=Convert (DateTime, @TmpDate) — ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°ΡΡ Π² Π΄Π°ΡΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΅Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ @TmpDate, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π΄Π°ΡΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π² ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ @Result. ΠΠ»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Convert, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
Convert (,), Π·Π΄Π΅ΡΡ «ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ » ΡΡΠΎ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ «Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅» .
SET @Result=DateAdd (dd, -1, @Result) — ΠΈΠ· Π΄Π°ΡΡ, Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ Π² ΠΏΠ΅ΡΠΌΠ΅Π½Π½ΠΎΠΉ @Result Π²ΡΡΠΈΡΠ°Π΅ΡΡΡ 1 Π΄Π΅Π½Ρ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ DateAdd, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
DateAdd (, ,) — Π·Π΄Π΅ΡΡ «ΡΠ°ΡΡΡ Π΄Π°ΡΡ» — ΡΡΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°ΡΡ (ΡΠΌ. ΡΡΠ½ΠΊΡΠΈΡ DatePart), «ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΎΠ²» — ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠ΅ΠΉ Π΄Π°ΡΡ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΠΊ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΠ΅ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «Π΄Π°ΡΠ°»).
RETURN @Result — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Ρ ΡΠ°Π½ΠΈΠΌΠΎΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ @Result.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ «Command (s) completed successfully.» Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ «ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΌΠ΅ΡΡΡΠ°» Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π΅Π΅. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΡΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, Π·Π°ΡΠ΅ΠΌ Π² ΠΎΠΊΠ½Π΅ Ρ ΠΏΡΡΡΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SELECT dbo. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΌΠ΅ΡΡΡΠ°] ('12/07/08') ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (ΡΠΈΡ. 12.6).
Π ΠΈΡ. 12.6.
ΠΠΎΡΠ²ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ: 2008;12−31 (ΡΠΈΡ. 12.6).
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π² ΠΠ «Students», Π² ΠΏΠ°ΠΏΠΊΠ΅ «Programmability», ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΠΠ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅ «Functions» ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ «New/Table-valued Function». ΠΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠΈΡ. 12.7).
Π ΠΈΡ. 12.7.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠΎΠ΄Π° ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°Π±Π»ΠΈΡΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²:
ΠΠ±Π»Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Inline_Function_Name);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (@Param1, @Param2);
RETURNS TABLE ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ, ΡΠΎ Π΅ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ;
Π’Π΅Π»ΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ SELECT ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² T-SQL.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ «Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ±ΠΎΡΠ° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ», Π²ΡΡΠΈΡΠ»ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ Π΄Π°ΡΡ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π ΠΎΠΊΠ½Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠΈΡ. 12.7) Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ (ΡΠΈΡ. 12.8):
Π ΠΈΡ. 12.8.
ΠΠ· ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΈΡ. 12.8 Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
SELECT Π€ΠΠ, [ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ], ΠΠΎΠ·ΡΠ°ΡΡ = DateDiff (yy, [ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ], GetDate ()).
FROM Π‘ΡΡΠ΄Π΅Π½ΡΡ ΠΠ· Π²ΡΡΠ΅ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ «Π‘ΡΡΠ΄Π΅Π½ΡΡ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ»Ρ «Π€ΠΠ» ΠΈ «ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ», Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅ «ΠΠΎΠ·ΡΠ°ΡΡ». ΠΠΎΠ»Π΅ «ΠΠΎΠ·ΡΠ°ΡΡ» Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈDateDiff Π²ΡΡΠΈΡΠ»ΡΡΡΠ΅ΠΉ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΠΌΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (ΡΠ°ΡΡΡΡ Π΄Π°ΡΡ) ΠΈ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
DateDiff (, ,).
ΠΠ΄Π΅ΡΡ «ΡΠ°ΡΡΡ Π΄Π°ΡΡ» — ΡΡΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (ΡΠ°ΡΡΡ Π΄Π°ΡΡ) (yy — Π³ΠΎΠ΄, mm — ΠΌΠ΅ΡΡΡ, dd — Π΄Π΅Π½Ρ), «Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π΄Π°ΡΠ°» — Π΄Π°ΡΠ° Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΈ «ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ Π΄Π°ΡΠ°» — Π΄Π°ΡΠ° ΠΊΠΎΠ½ΡΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄Π°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π°ΡΡ Π±Π΅ΡΠ΅ΠΌ Π΄Π°ΡΡ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠ΄Π΅Π½ΡΠ°, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π΄Π°ΡΡ Π±Π΅ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΡ Π΄Π°ΡΡ (ΡΡΠ½ΠΊΡΠΈΡ GetDate ()).
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ «Command (s) completed successfully.» Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΡΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, Π·Π°ΡΠ΅ΠΌ Π² ΠΎΠΊΠ½Π΅ Ρ ΠΏΡΡΡΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SELECT * FROM dbo. Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ±ΠΎΡΠ° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ]() ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (ΡΠΈΡ. 12.9).
Π ΠΈΡ. 12.9.
Π Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΠ°ΠΌΠΈΠ»ΠΈΡΠΌΠΈ, Π΄Π°ΡΠ°ΠΌΠΈ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠΈΡ. 12.9).
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ.
ΠΠ° ΡΡΠΎΠΌ ΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ , Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ². ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π³Π»Π°Π²Ρ 6 ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ (ΡΠΈΡ. 12.10):
Π ΠΈΡ. 12.10.