[英]How can i change SQL date format to: 12th Jun 2021. (as example)
所以,我试图从 .csv 文件插入数据,但由于我使用的日期格式 - 导入导致它设置为 00-00-0000
导入设置:格式 - CSV 使用加载数据(否则会导致错误和导入失败) 具体格式选项:无
导入后收到的错误:
我的 csv 文件结构:(以防万一我需要使用特定格式)
名称;1;2021 年 1 月 1 日;2021 年 1 月 2 日;;;;;;;;;;;;;
从技术上讲,我可以手动将其格式化为 12 jun 2021 / 12.06.2021 / 12/06/2021 但我想避免这种情况。
对不起,如果这是一个愚蠢的问题并且答案很简单,但我不知道如何解决它。 :)
我已经尝试过了,但仍然一无所获。
SET lc_time_names = 'en_US';
select date_format(my_date, 'DD MMM yyyy') FROM table1;
select date_format(my_date, 'DD/MMM/yyyy') FROM table1;
也许您应该将日期列导入为文本数据类型,然后再进行转换:请按照以下步骤操作:
导入向导
然后更新您的列:
UPDATE myimport
SET StartDate = STR_TO_DATE(StartDate,'%D %b %Y');
UPDATE myimport
SET FinishDate = STR_TO_DATE(FinishDate,'%D %b %Y');
然后将数据类型更改为日期(或最好是日期时间):
ALTER TABLE myimport
MODIFY COLUMN StartDate DATE,
MODIFY COLUMN FinishDate DATE;
如果我们检查数据,
mysql> SELECT * FROM myimport;
+------+------+------------+------------+
| name | Row | StartDate | FinishDate |
+------+------+------------+------------+
| name | 1 | 2021-01-01 | 2021-01-02 |
+------+------+------------+------------+
1 row in set (0.00 sec)
如果我们检查数据类型以确保它是日期:
SHOW CREATE TABLE myimport;
+----------+------------------------------------------------------
| Table | Create Table |
+----------+------------------------------------------------------
| myimport | CREATE TABLE `myimport` (
`name` text,
`Row` int DEFAULT NULL,
`StartDate` date DEFAULT NULL,
`FinishDate` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+----------+------------------------------------------------------
1 row in set (0.00 sec)
您可以转换并使用以下查询来转换日期。
select date_format(`created_at`, '%D %b %Y') FROM product_attributes;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.