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语句更改字段很复杂。
是否有一种快速的方法来更改列的格式,而不仅仅是选择它?
答案 0 :(得分:1)
您甚至不应该考虑存储年份;您已经有完整的日期,可以轻松地从中得出年份。只需使用:
SELECT
code,
YEAR(report_date) AS report_year,
total_operating_revenue
FROM back;
注意:如果要使用LIMIT
,则还应该使用ORDER BY
。我不知道您的逻辑,因此我没有在回答中使用LIMIT
。
答案 1 :(得分:0)
alter table back modify column report_date char(4);
它可以将report_date
之类的字段1989-12-31
的值更改为1989
。
答案 2 :(得分:0)
如果您希望更轻松地更改数据库方案,我建议使用 GUI 程序,因为它们通常会使处理过程更容易。
我建议您调查:
MySQL Workbench -免费-MySQL标准
HeidiSQL -免费-我最喜欢它,因为它轻巧并且具有很多功能(仅Windows,Linux需要Wine)
phpMyAdmin -免费(使用PHP)
DataGrip -InteliJ的付费数据库产品。