内部连接两个数据集但 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');
我是 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
检查了我需要加入的列的数据类型,对于新创建的数据集:
另一个数据集的日期列是: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');