Iesākot iepazīšanos ar jauno Microsoft SQL Server 2008 iespējām, gribētos akcentēt uzmanību uz diviem jauniem datu tipiem (DATE, TIME). Pēc savas pieredzes, ikdienā ir liela vajadzība atlasīt datus pēc datuma, kur netiek ņemts vērā laiks. Strādājot ar iepriekšējām Microsoft SQL Server versijām pastāvēja vismaz divi varianti problēmas atrisinājumam:
- Nosūtīt un saglabāt datus atsevišķā lauka, kā laiku norādot 00:00:00.
- Datu atlases vaicājumos veikt manipulācijas ar DATETIME lauka saturu.
Ideālās pasaules gadījumā, pirmais gadījums atrisina visas problēmas, bet atgriežoties pie realitātes, pastāv iespēja ierakstīt datumu ar laiku. Otrais gadījums uzliek par pienākumu jūsu rakstītajos vaicājumos izmantot visai dīvainas manipulācijas ar datiem, piemēram ( CAST(CONVERT(CHAR(8), GETDATE(), 112) AS DATETIME)). Visai neērts pasākums un diez vai tas nāk par labu ātrdarbībai.
Atgriežoties pie jauniem tipiem, zemāk īss skripts, kas demonstrē jauno tipu stipro pusi.
DECLARE @date DATE, @time TIME
SET @date = GETDATE ()
SET @time = GETDATE ()
SELECT @date
SELECT @time
Kā zināms, funkcija "GETDATE ()" atgriež datumu un laiku, bet to noglabājot mainīgajos ar jauniem tipiem, iegūstam vēlamo rezultātu.
2008-02-13 00:00:00.000
15:03:02.6430000
To pielietošanas iespējas ir acīmredzamas. Tiek novērsta iespēja noglabāt kļūdainus datus, vienkāršojās darbības ar datu atlasi.
Posted
Feb 13 2008, 03:23 PM
by
andrejs.mamontovs