Как создать диапазон дат в MariaDB? - PullRequest
0 голосов
/ 15 октября 2019

Я хочу вставить дату и день недели для всего 2019-01-01 до 2019-12-31. но я не в состоянии.

Я пытаюсь использовать функцию date_format.

enter image description here

Это моя таблица. имя таблицы - food_user, и я хочу вставить дату и день в re_date, re_day 2019-01-01 ~ 2019-12-31

enter image description here

INSERT INTO food_user (NAME,re_date,re_day) VALUES ('Alex' , ? , ?);

Ответы [ 3 ]

0 голосов
/ 15 октября 2019

может быть, это может помочь

insert into food_user (name,re_date,re_day) values ('Alex' , DATE_FORMAT(NOW(), "%Y-%m-%d") , DATE_FORMAT(NOW(), "%W"));

от https://www.w3schools.com/sql/func_mysql_date_format.asp

0 голосов
/ 15 октября 2019

Если вы используете MariaDB, попробуйте этот код, чтобы получить все даты в году:

SELECT '2019-01-01' + INTERVAL seq DAY FROM seq_0_to_364;

or 

SELECT '2018-12-31' + INTERVAL seq DAY FROM seq_1_to_365;

Чтобы понять это, MariaDB имеет встроенный механизм SEQUENCE - ссылка: https://mariadb.com/kb/en/library/sequence-storage-engine/.

В основном, набрав SELECT seq FROM seq_1_to_10;, вы получите число seq от 1 до 10. В этом случае целый год равен 365 дням, следовательно, seq_1_to_365 вернет число от 1 до 365. ЕСЛИ вы рассчитываете с нуля (0), тогда вам нужно будет рассмотреть последнее значение как 364, следовательно, изменив последовательность на seq_0_to_364, как в примере выше. Из вашего запроса вы можете сделать что-то вроде этого:

INSERT INTO food_user (NAME,re_date,re_day)
SELECT 'Alex','2019-01-01' + INTERVAL seq DAY,DAYNAME('2019-01-01' + INTERVAL seq DAY) FROM seq_0_to_364;
0 голосов
/ 15 октября 2019

Если вы используете MySQL, вы можете попробовать insert into food_user(name, re_date, re_day) values("Hello", "2019-01-01", dayofweek("2019-01-01"));

Если вы хотите вставить все дни с 2019-01-01 по 2019-12-31, вы можете использовать php или любой другой язык на стороне серверадля вставки записей.

Если вы используете Oracle, вы можете использовать функцию PL / SQL, чтобы вставить все из них

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...