Биллинговая система Nodeny
21 Ноября 2024, 15:36:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: интересная фишка Mysql  (Прочитано 15300 раз)
ser970
Модератор
Спец
*****

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« : 14 Февраля 2021, 09:23:08 »

mysql> SELECT (UNIX_TIMESTAMP('2021-02-01 00:00:00')-UNIX_TIMESTAMP('2021-01-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-02-01 00:00:00')-UNIX_TIMESTAMP('2021-01-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             31.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-03-01 00:00:00')-UNIX_TIMESTAMP('2021-02-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-03-01 00:00:00')-UNIX_TIMESTAMP('2021-02-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             28.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-04-01 00:00:00')-UNIX_TIMESTAMP('2021-03-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-04-01 00:00:00')-UNIX_TIMESTAMP('2021-03-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             30.9583 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


mysql> SELECT (UNIX_TIMESTAMP('2021-05-01 00:00:00')-UNIX_TIMESTAMP('2021-04-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-05-01 00:00:00')-UNIX_TIMESTAMP('2021-04-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             30.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-06-01 00:00:00')-UNIX_TIMESTAMP('2021-05-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-06-01 00:00:00')-UNIX_TIMESTAMP('2021-05-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             31.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-07-01 00:00:00')-UNIX_TIMESTAMP('2021-06-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-07-01 00:00:00')-UNIX_TIMESTAMP('2021-06-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             30.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-08-01 00:00:00')-UNIX_TIMESTAMP('2021-07-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-08-01 00:00:00')-UNIX_TIMESTAMP('2021-07-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             31.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-09-01 00:00:00')-UNIX_TIMESTAMP('2021-08-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-09-01 00:00:00')-UNIX_TIMESTAMP('2021-08-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             31.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-10-01 00:00:00')-UNIX_TIMESTAMP('2021-09-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-10-01 00:00:00')-UNIX_TIMESTAMP('2021-09-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             30.0000 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-11-01 00:00:00')-UNIX_TIMESTAMP('2021-10-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-11-01 00:00:00')-UNIX_TIMESTAMP('2021-10-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             31.0417 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT (UNIX_TIMESTAMP('2021-12-01 00:00:00')-UNIX_TIMESTAMP('2021-11-01 00:00:00'))/86400;
+-------------------------------------------------------------------------------------+
| (UNIX_TIMESTAMP('2021-12-01 00:00:00')-UNIX_TIMESTAMP('2021-11-01 00:00:00'))/86400 |
+-------------------------------------------------------------------------------------+
|                                                                             30.0000 |
+-------------------------------------------------------------------------------------+


и обратное

 SELECT from_unixtime(UNIX_TIMESTAMP('2021-03-01 00:00:00')+(3600*24*31));
+-------------------------------------------------------------------+
| from_unixtime(UNIX_TIMESTAMP('2021-03-01 00:00:00')+(3600*24*31)) |
+-------------------------------------------------------------------+
| 2021-04-01 01:00:00                                               | 
+-------------------------------------------------------------------+
1 row in set (0.00 sec)

Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #1 : 14 Февраля 2021, 11:13:29 »

Количество дней в месяце? Или что?
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #2 : 14 Февраля 2021, 12:23:56 »

Ну да, март и октябрь.... разница на 1 час
Что-то мне вангуется, что это связано с переходом на на летне-зимнее время
 
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #3 : 07 Апреля 2021, 16:47:37 »

только один вопрос: а нафига? )) я не помню, чтобы количество дней в месяце менялось и его нужно было каждый раз считать )) более того: причем тут  mysql ))
с таким же успехом это и фишка bash+python, например))
Код:
$ echo "print(round(($(date -d'2021-03-01' +%s)-$(date -d'2021-02-01' +%s)) / 86400))"|python3
28

« Последнее редактирование: 07 Апреля 2021, 22:30:42 от ser970 » Записан
ser970
Модератор
Спец
*****

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #4 : 07 Апреля 2021, 22:31:20 »

вообще то меняется.
28 != 29 (февраль)

вычисляется чуть по другому
но это так было написано в одном скрипте - просто переписал...

сори (опять кнопки перепутал)...
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!