Есть ли быстрый способ изменить формат столбца? - PullRequest
0 голосов
/ 13 марта 2020
select * from back limit 2;    
code    report_date total_operating_revenue
000002.XSHE 1989-12-31  15567
000002.XSHE 1990-12-31  23012

Я хочу сохранить поле report_date год.
Моя неудачная попытка:

update back set report_date = date_format(report_date,'%Y');
select * from back limit 2;
+-------------+-------------+-------------------------+
| code        | report_date | total_operating_revenue |
+-------------+-------------+-------------------------+
| 000002.XSHE | 0000-00-00  |                    15567|
| 000002.XSHE | 0000-00-00  |                    23012|

Другая попытка:

create table new as 
select code,date_format(report_date,'%Y') as report_date,total_operating_revenue from back;
drop table back;
rename table new TO back; 

Я чувствую это Сложно использовать три оператора mysql для изменения поля.
Существует ли быстрый способ изменить формат столбца, а не просто выбрать его?

Ответы [ 3 ]

1 голос
/ 13 марта 2020

Вероятно, вам даже не стоит думать о сохранении года; у вас уже есть полная дата, из которой может быть легко получен только один год. Просто используйте:

SELECT
    code,
    YEAR(report_date) AS report_year,
    total_operating_revenue
FROM back;

Примечание: если вы хотите использовать LIMIT, вы также должны использовать ORDER BY. Я не знаю твои логи c, поэтому я не использовал LIMIT в своем ответе.

0 голосов
/ 13 марта 2020

Если вы хотите sh для более простого изменения схем базы данных, я бы порекомендовал использовать программу GUI, поскольку они обычно упрощают процесс.

Я бы порекомендовал посмотреть:

MySQL Верстак - бесплатно - MySQL стандарт

Хайди SQL - бесплатно - мой любимый, так как он легкий и имеет много функций (только Windows, вам нужно Wine для Linux)

phpMyAdmin - бесплатно (использует PHP)

DataGrip - платный, продукт БД InteliJ.

0 голосов
/ 13 марта 2020
alter table back modify column report_date char(4);

Может изменить значение поля report_date, например 1989-12-31, на 1989.

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