【发布时间】:2019-02-21 20:31:15
【问题描述】:
我正在尝试将与某个月份对应的数据从 SQL 数据库中放入临时表中。
DROP TABLE
#ComPAIR_Alliance_Table
SELECT
IMOno
,period
,[service]
,alliances
INTO
#ComPAIR_Alliance_Table
FROM
com_COMPAIR.dbo.Data_BlueWaterCapacity_US_2
WHERE
LEFT(period, 7) = '2015-03'
SELECT
*
FROM #ComPAIR_Alliance_Table
句号字段格式如下:2015-03-29 00:00:00.000
但是,我的代码只返回一个空的临时表,其中包含正确的列名但没有行(即使我确定我的表中存在具有该日期的行)。我已经通过使用 is.numeric 确保句点列确实是一个字符串。
有人可以帮我解决可能是什么问题吗?
谢谢!
【问题讨论】:
-
period的数据类型是什么?我敢打赌这是date。 -
句号是字符串吗?还是日期/时间列?请注意,您的查询是非 SARGable。
-
我也尝试过使用 YEAR(period) = 2019 AND MONTH(period) = 09 但这也不起作用
-
您不使用 ISNUMERIC 检查数据类型。你看表结构还是喜欢
SELECT sql_variant_property(period, 'basetype')
标签: sql sql-server date datetime