#mysql #date #dayofmonth
#mysql #Дата #dayofmonth
Вопрос:
Я создаю таблицу на час
CREATE TABLE hour (
Name1 varchar(25) not null,
Datee Datetime not null DEFAULT (CURRENT_TIMESTAMP()),
Monthh date not null DEFAULT (MONTH(CURRENT_DATE()))
);
Mysql дает мне только 0000-00-00, а не имя, где я использую кнопку в php. Что в этом плохого и насколько правильно? На мой взгляд, у моего phpadmin нет функции МЕСЯЦА
Комментарии:
1. ТИП данных ДАТЫ неверен для номера месяца, который является числовым.
Ответ №1:
CREATE TABLE hour ( Name1 varchar(25) not null,
Datee DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
Monthh TINYINT NOT NULL DEFAULT (MONTH(CURRENT_TIMESTAMP))
);
PS. HOUR
зарезервированное слово — я бы рекомендовал переименовать таблицу.
Комментарии:
1. Таблица имен предназначена только для того, чтобы спросить вас. Настоящее имя «Годзина». Польский язык 😅
Ответ №2:
Хранить полную временную метку и ее часть месяца в отдельных столбцах в одной таблице абсолютно излишне. Вы можете указать только дату и время и получить его месяц в запросе выбора:
CREATE TABLE Godzina (
Nazwa varchar(25) not null,
Randka Datetime not null DEFAULT CURRENT_TIMESTAMP()
);
INSERT INTO Godzina (Nazwa) VALUES ('TestName');
SELECT
Nazwa,
Randka,
MONTH(Randka) AS Miesiac
FROM Godzina;
Протестируйте его на SQLize.online
Комментарии:
1. Ничто не мешает
Datee
изменить структуру OP в будущем, тогдаMonthh
как останется неизменным. Ваше решение неприменимо в таком случае.