我想LEFT JOIN
在两个表上做一个,其中一个表有一个日期时间列,另一个表有一个日期列。当我在 SQL Server 中工作时,我曾经CONVERT
将日期时间更改为日期。然后我写了 join 语句:
SELECT CONVERT(date,db1.dbo.table1.datecolumn), db2.dbo.table2.datecolumn
FROM db1.dbo.table1
LEFT JOIN db2.dbo.table2
ON db1.dbo.table1.datecolumn = db2.dbo.table2.datecolumn
Run Code Online (Sandbox Code Playgroud)
查询返回 table1 中的日期列,但 table2 中的列仅填充为 NULL 值。我不确定我做错了什么。我尝试CAST
了CONVERT
,而不是,但没有运气。转换有什么事情发生吗?任何帮助表示赞赏。
convert()
我猜你在错误的地方做的。你必须在 的 equals 操作中做ON
,它仍然是一个datetime
,无论您在所选列的列表中对其执行什么存在。
尝试:
SELECT CONVERT(date,db1.dbo.table1.datecolumn), db2.dbo.table2.datecolumn
FROM db1.dbo.table1
LEFT JOIN db2.dbo.table2
ON CONVERT(date,db1.dbo.table1.datecolumn) = db2.dbo.table2.datecolumn
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12619 次 |
最近记录: |