Mysql
 sql >> база данни >  >> RDS >> Mysql

Примери за DAYOFYEAR() – MySQL

Когато изпълнявате заявки в MySQL, можете да използвате DAYOFYEAR() функция за връщане на деня от годината от дата.

Тази функция приема един аргумент и връща стойност между 1 и 366 , в зависимост от това кой ден от годината представлява дневната част от аргумента.

Синтаксис

Синтаксисът е така:

DAYOFYEAR(дата)

Където date е стойността на датата, от която искате да се върне деня от годината.

Пример

Ето пример за демонстрация.

ИЗБЕРЕТЕ DAYOFYEAR('2019-01-01') КАТО 'Дата 1', DAYOFYEAR('2019-12-31') КАТО 'Дата 2';

Резултат:

+--------+-------+| Дата 1 | Дата 2 |+--------+-------+| 1 | 365 |+--------+-------+

В този пример, за да демонстрирам правилния ефект, стартирам тази функция два пъти на две различни дати – едната в началото на годината, а другата в края на годината.

DAYOFYEAR() срещу DAYOFMONTH()

Ето пример за демонстриране на разликата между DAYOFYEAR() и DAYOFMONTH() функции.

ЗАДАДЕТЕ @date ='2019-10-03';ИЗБЕРЕТЕ @дата, DAYOFMONTH(@date) КАТО 'Ден от месеца', DAYOFYEAR(@date) КАТО 'Ден от годината';

Резултат:

+-----------+--------------+------------+| @дата | Ден от месеца | Ден от годината |+-----------+--------------+------------+| 2019-10-03 | 3 | 276 |+-----------+--------------+------------+

DAYOFMONTH() функцията връща стойност между 1 и 31 (или 0 за дати с част от нулев ден), което представлява деня от месеца. Връща се обратно на 1 в началото на всеки месец.

DAYOFYEAR() функцията от друга страна връща стойност между 1 и 366 . Връща се обратно на 1 в началото на всяка година.

Пример за база данни

Ето пример за използване на DAYOFYEAR() при запитване към база данни:

ИЗПОЛЗВАЙТЕ sakila;ИЗБЕРЕТЕ pay_date КАТО 'Дата/час', DAYOFYEAR(payment_date) КАТО 'Ден от годината'FROM paymentWHERE payment_id =1;

Резултат:

<пред>+---------------------+------------+| Дата/Час | Ден от годината |+---------------------+------------+| 25.05.2005 11:30:37 | 145 |+---------------------+------------+

Текуща дата/час

Ето пример за извличане на частта от деня от текущата дата и час (които се връщат с помощта на NOW() функция).

ИЗБЕРЕТЕ СЕГА(), DAYOFYEAR(СЕГА());

Резултат:

+---------------------+----------------+| СЕГА() | ДЕН ГОДИНА(СЕГА()) |+---------------------+------------------+| 26.06.2018 08:23:04 | 177 |+---------------------+----------------+

Друг начин да направите това е да използвате CURDATE() функция, която връща само датата (но не и часа).

ИЗБЕРЕТЕ CURDATE(), DAYOFYEAR(CURDATE()); 

Резултат:

<пред>+-----------+---------------------+| CURDATE() | ДЕН НА ГОДИНА(CURDATE()) |+-----------+---------------------+| 26.06.2018 | 177 |+-----------+---------------------+
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL управление на потребителите

  2. странно кодиране на символи на съхранените данни, старият скрипт им показва добре, новият не го прави

  3. Вземете списък с дати между две дати

  4. Как да избегнем деленето на нула в MySQL

  5. MySQL/MariaDB - подреждане по вътрешна подзаявка