Építsen sql lekérdezéseket
Ábra. 3.31. A DATEADD funkció eredménye
A DATEDIFF függvény segítségével határozható meg a dátum, az idő vagy a dátum / idő első értékétől a második értékig eltelt idő. Ez a funkció BIGINT típusú értéket ad vissza, és a következő formátumú:
DATEDIFF ( <временной отрезок> FROM <значение1> A <значение2> )
DATEDIFF ( <временной отрезок>, <значение1>, <значение2> ), ahol <временной отрезок> ugyanaz a szintaxis, mint a DATEADD függvény. Meg kell jegyezni a következőket:
- függvény pozitív számot ad vissza, ha <значение2> meghaladja a <значение1>, negatív, ha <значение1> meghaladja a <значение2>, és nulla, ha az értékek egyenlőek;
- ha a számítás eredménye törtrészes, kerekített értéket adnak ki;
- a DATE típusú érték TIME típusú értékkel történő összehasonlítása érvénytelen;
- Ami a DATEADD funkciót illeti, bizonyos időszegmensek csak a megfelelő típussal használhatók.
Például az előfizetőnek a 115705 személyes számlával benyújtott kérelmekre van szüksége, hogy levonhassa a kérelem bejegyzésének időpontjától a végrehajtás pillanatáig eltelt hetek számát. Ehhez használja a következő lekérdezést: SELECT RequestCD, DATEDIFF (WEEKDAY FROM IncomingDate
FOR ExecutionDate) AS intervallum FROM Request WHERE AccountCD = 115705; A lekérdezés eredményét az 1. ábra mutatja. 3.32.
A helyesen kialakított karakterláncot dátum-idő típusúvá alakíthatja. Például a nap, a hónap és az év három értékének dátumtípusa a következőképpen érhető el:
CAST (DAY MONTH YEAR AS DATE), ahol DAY, MONTH és YEAR lehet egy nap, hónap vagy év értékét tartalmazó tábla állandói vagy oszlopai.
Például, ha a 2. hónaphoz tartozó, a megfelelő hónap első napjához rendelt gázszolgáltatás különböző hónap- és évértékét szeretné megjeleníteni, a lekérdezés így nézhet ki: SELECT DISTINCT NachislMonth, NachislYear,
CAST (1. NachislMonth, NachislYear as date), mint első nap
Azokban az esetekben, amikor a Firebird nem képes implicit típusú konverziók végrehajtására, a CAST funkció segítségével explicit konverziót kell végrehajtania. Ez a függvény átalakítja az első argumentum által megadott kifejezés értékét a második argumentum által megadott típushoz. Funkció szintaxisa:
CAST (<выражение> AS <тип данных>).
A domaineket nem lehet adattípusként megadni.
A CAST funkcióval összehasonlíthatja az azonos táblázattal vagy különböző táblázatokkal rendelkező különböző típusú adattípusokat tartalmazó oszlopokat.
A CAST segítségével dátum és időpont egyik típusából átkonvertálható. A táblázatban. 3.3 az átalakítási szabályok bemutatására [18].
WHERE GazServiceCD = 2;
A lekérdezés eredményét az 1. ábra mutatja. 3.33.
Ábra. 3.33. A CAST funkció eredménye
Ezenkívül a számtípusokat szöveggé alakíthatja át, és fordítva. Például annak érdekében, hogy növelje az összes előfizető előfizetői számát 2-tel, a következő lekérdezést kell használnia:
SELECT (CAST (AccountCD AS INTEGER) +2) Mint új Ac, Fio
Ha például 115705 számlaszámra kell előfizetni az előfizető számlázási értékeit, egész számra kerekítve, akkor a következő lekérdezést használhatja:
SELECT NachislFactCD, NachislSum,
CAST (NachislSum AS INTEGER) AS RoundSum
A lekérdezés eredményét az 1. ábra mutatja. 3.34.
Ábra. 3.34. A szám kerekítésének egész számra kerekítésének eredménye