Изучаем sql


mysql>  SELECT DATE_ADD('20040101'



Pdf көрінісі
бет188/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   184   185   186   187   188   189   190   191   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

209
mysql> 
SELECT DATE_ADD('20040101',
> INTERVAL (ones.num + tens.num + hundreds.num) DAY) dt
> FROM
> (SELECT 0 num UNION ALL
> SELECT 1 num UNION ALL
> SELECT 2 num UNION ALL
> SELECT 3 num UNION ALL
> SELECT 4 num UNION ALL
> SELECT 5 num UNION ALL
> SELECT 6 num UNION ALL
> SELECT 7 num UNION ALL
> SELECT 8 num UNION ALL
> SELECT 9 num) ones
> CROSS JOIN
> (SELECT 0 num UNION ALL
> SELECT 10 num UNION ALL
> SELECT 20 num UNION ALL
> SELECT 30 num UNION ALL
> SELECT 40 num UNION ALL
> SELECT 50 num UNION ALL
> SELECT 60 num UNION ALL
> SELECT 70 num UNION ALL
> SELECT 80 num UNION ALL
> SELECT 90 num) tens
> CROSS JOIN
> (SELECT 0 num UNION ALL
> SELECT 100 num UNION ALL
> SELECT 200 num UNION ALL
> SELECT 300 num) hundreds
> WHERE DATE_ADD('20040101',
> INTERVAL (ones.num + tens.num + hundreds.num) DAY) < '20050101';
++
| dt |
++
| 20040101 |
| 20040102 |
| 20040103 |
| 20040104 |
| 20040105 |
| 20040106 |
| 20040107 |
| 20040108 |
| 20040109 |
| 20040110 |
...
...
...
| 20040220 |
| 20040221 |
| 20040222 |
| 20040223 |


210
Глава 10. И снова соединения
| 20040224 |
| 20040225 |
| 20040226 |
| 20040227 |
| 20040228 |
| 20040229 |
| 20040301 |
...
...
...
| 20041220 |
| 20041221 |
| 20041222 |
| 20041223 |
| 20041224 |
| 20041225 |
| 20041226 |
| 20041227 |
| 20041228 |
| 20041229 |
| 20041230 |
| 20041231 |
++
366 rows in set (0.01 sec)
В этом подходе замечательно то, что результирующий набор автомати
чески включает 29 февраля без всяких дополнительных вмеша
тельств, поскольку сервер БД вычисляет его, когда добавляет 59 дней
к 1 января 2004 года.
Теперь, когда у нас есть механизм получения всех дней 2004 года, что
мы должны с ними сделать? Ну, может потребоваться сгенерировать
запрос, по которому будут выводиться все дни 2004 года с номерами
счетов, открытых в каждый из дней, с числом осуществленных опера
ций и т. д. Вот пример, дающий ответ на первый вопрос:
mysql> 


Достарыңызбен бөлісу:
1   ...   184   185   186   187   188   189   190   191   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет