我有一个很久以前被编程为 ( numeric(17,9), not null
) 数据类型的日期列(例如 20130623.1434480600)。我只对当天前一天的数据和 UserCode=Automation 感兴趣,因为将发送的报告将仅包含 1 天前自动完成的结果。我已将其转换为具有以下查询以及特定用户要求的DateTime
函数 ( ):6/23/2013 10:34:48
这显示在Date
列下:2013-06-23 16:54:56.993
我想出了这个查询,但它给了我一些错误:
SELECT
CAST (DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) AS DATE) 'Date',
LEFT(CAST(DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([DATE],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([DATE],15,3))) AS TIME,8) 'Time',
[Object] AS [Dataset],
SUBSTRING(Parms,1,6) AS [Media]
FROM (Select CONVERT(VARCHAR(18),[Date]) [Date],
[Object],
MsgID,
Parms
FROM JnlDataSection
WHERE CAST(substring(convert(varchar(50), [Date]), 0, 5) + '-' +
substring(convert(varchar(50), [Date]), 5, 2) + '-' +
substring(convert(varchar(50), [Date]), 7, 2) AS DATETIME))) A
Where MsgID = '325' AND
SUBSTRING(Parms,1,6) = 'V40449'
Order By Date DESC;
错误:
消息 102,级别 15,状态 1,第 11 行 ',' 附近的语法不正确。消息 4145,级别 15,状态 1,第 21 行 在预期条件的上下文中指定的非布尔类型的表达式,靠近 ')'。所需输出:
- 第一栏: 日期:
2013-06-23
- 第二栏:时间:
16:54
任何人都可以就我如何获得所需的输出对我当前的代码提出任何建议吗?
那将不胜感激。