内部连接两个数据集但 return 没有任何错误(日期格式问题)?

inner join two datasets but return nothing without any error (date format issue)?

我是 SQL 的新手,目前我正在做一个关于连接两个数据集的任务,其中一个数据集是我自己创建的,这是我使用的查询:

USE `abcde`;
CREATE TABLE `test_01`( 
`ID` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`NUMBER01` bigint(20) NOT NULL DEFAULT '0',
`NUMBER02` bigint(20) NOT NULL, 
`date01` date DEFAULT NULL, 
PRIMARY KEY (`ID`, `date01`))

然后我将数据从 csv 文件加载到此 table,csv 文件如下所示:

ID       NUMBER01    NUMBER02    DATE01
aaa=ee   12345678    235896578   **2009-01-01T00:00:00**

如果我查询这个新创建的table,它看起来像这样('DATE01'的格式改变了):

ID       NUMBER01    NUMBER02    DATE01
aaa=ee   12345678    235896578   **2009-01-01**

另一个数据集,我查询并导出到一个 csv 文件,date01 列的格式类似于 01/12/1979,在 SQL 中,格式类似于 1979-12-01.

我还使用select * from information_schema.columns检查了我需要加入的列的数据类型,对于新创建的数据集:

另一个数据集的日期列是: 不同之处在于: 1. csv中日期列的格式出现不一样 2. COLUMN_DEFAULT不一样,一个是0000-00-00,一个是NULL.

我想知道为什么我得到空输出的原因可能是因为 'date' 格式的不同,但我不确定如何使它们相同以便我可以在输出中得到一些东西,有人可以给我一些提示吗?谢谢。

the format of the 'DATE01' changes

当然,DATE 数据类型不包含时区info/component。

I wonder the reason why I got empty output is probably because the difference in the 'date' format

如果输入值有一些缺点(如错误的数据格式),则相应值将被截断或设置为 NULL。看 - 你必须在导入过程中收到一堆类似于 "truncate incorrect value".

的警告

如果 CSV 中的日期字段格式错误,则必须使用中间用户定义变量来接受原始值,并在 SET 子句中对其应用适当的转换表达式。喜欢

LOAD DATA INFILE ...
INTO TABLE tablename (field1, ..., @date01)
SET date01 = STR_TO_DATE(@date01, '%d/%m/%Y');