Sql 在连接选择中转换日期时间
我想转换此选择中的Sql 在连接选择中转换日期时间,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想转换此选择中的Date列,但它返回一个错误 SELECT isnull(CAST([Barcode] AS VARCHAR), '') + ';' + isnull(CAST([DocumentTypeID] AS VARCHAR), '') + ';' + isnull(CAST([FlowStatusId] AS VARCHAR), '') + ';' + isnull(CAST([DocumentStatusId] AS VARCHAR), '')
Date
列,但它返回一个错误
SELECT
isnull(CAST([Barcode] AS VARCHAR), '') + ';' +
isnull(CAST([DocumentTypeID] AS VARCHAR), '') + ';' +
isnull(CAST([FlowStatusId] AS VARCHAR), '') + ';' +
isnull(CAST([DocumentStatusId] AS VARCHAR), '') + ';' +
isnull(CAST([DATE] AS VARCHAR), '') AS 'DATE'
FROM
dbo.PSDOC
WHERE
DATEPART(m, Data) = DATEPART(m, DATEADD(m, -1, getdate()))
错误是:
列名“DATE”无效。严重性16
正如错误所说。您没有名为“日期”的列 您的列名似乎是数据而不是日期。据我所知,在where条款中: 更改:
isnull(CAST([DATE] AS VARCHAR), '') AS 'DATE' FROM dbo.PSDOC
到
或者更好地使用转换
isnull(CONVERT(varchar(20), [DATA], <format>), '') AS 'DATE' FROM dbo.PSDOC
改为
WHERE data >=dateadd(m, datediff(m, 0, current_timestamp)-1, 0)
and data < dateadd(m, datediff(m, 0, current_timestamp), 0)
其中data>=dateadd(m,datediff(m,0,当前时间戳)-1,0)
数据
你在PSDOC
中有一列DATE
吗?是的,我忘了把-->作为“DATE”,但它不起作用这部分CAST([DATE]作为VARCHAR)
正在表中使用一列DATE
。其中data>=dateadd(m,datediff(m,0,current\u timestamp)-1,0)我想斯博斯会在这个月的最后一天回来吗??-->数据WHERE DATEPART(m, Data) = DATEPART(m, DATEADD(m, -1, getdate()))
WHERE data >=dateadd(m, datediff(m, 0, current_timestamp)-1, 0)
and data < dateadd(m, datediff(m, 0, current_timestamp), 0)