php - 我无法将 data_type 从 TINYTEXT 更改为 DATE&/DATETIME
问题描述
我正在使用 SQL 8.0 并且仍在学习,并且我对其进行了一些很好的更改。现在我被日期困住了,它们在导入data_type
中TINYTEXT
,其他每个字段都是VARCHAR(60)
或INT
为主键,我在这方面做得很好,但我被困data_type
在日期上。
从第一天开始我就这样做了:它适用于date
类型
SELECT *, DATE_FORMAT(column_name , "%d/%m/%Y %H:%i:%s")
FROM table_name;
(对于一个日期时间它不起作用。)
现在我尝试了这个:
INSERT INTO database_test.table_test.field_name(today)
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y') )
而不是%m-%d%y
,我需要这种欧洲格式:%d/%m/%Y
对于 DATE。而%d/%m/%Y %H:%i:%s
对于我的DATETIME
. 两者都在TINYTEXT
。(注意:对于未来的“日期”数据类型,它们的日期是 1899 年到 2099 年。)
解决方案
我要做几个假设...
- SQL 8.0是指MySQL 8.0(
STR_TO_DATE
非标准,因此可能无法与其他数据库服务器一起使用) - 您
TINYTEXT
字段中的日期以格式存储%d/%m/%Y %H:%i:%s
...为了争论起见,我要说TINYTEXT
日期字段被称为date_string
.
我要做的是创建一个新DATE
列,然后UPDATE
使用来自的值date_string
- 使用STR_TO_DATE
函数(就像你尝试过的那样) - 如果成功删除原始列,并可能重命名新DATE
列。
添加真实日期列
我在date_date
这里调用它。
ALTER TABLE `table_test` ADD `date_date` DATE NOT NULL AFTER `date_string`;
使用 TINYTEXT 字段中的值更新实际日期
(假设d/m/Y H:i:s
格式)
UPDATE `table_test` SET `date_date` = STR_TO_DATE(`date_string`, '%d/%m/%Y %H:%i:%s');
只要您的列中的格式与函数中设置的格式匹配,
这应该可以工作。无论如何,您现在将在表中拥有原始日期和转换后的日期,因此您可以检查数据是否正常。TINYTEXT
STR_TO_DATE
推荐阅读
- python - Huggingface 标记器总是编码为未知 - vocab.txt 的转换?
- javascript - 如何为现有对象设置通用吸气剂?
- c++ - 将指针数组传递给函数时出现分段错误
- python - (Python/Flask_SQLAlchemy) 无法使用“sqlite:////tmp/test.db”打开数据库文件
- angular - 在Angular中将下拉值传递给HttpGet api
- winapi - WS_POPUP 的特点是什么?
- vue.js - Vue:获取对元素或数据绑定的引用以更改其类?
- python - Opencensus - Python Notebooks 中的手动上下文传播
- postgresql-9.5 - postgres 社区版中的数据屏蔽
- java - 如何使用 java/kotlin 在 EPSON TM-T88IV 打印机中部分切纸