SQL查询中的空列输出

时间:2013-07-15 16:21:40

标签: sql database output

我有一个相当大的SQL查询,它将数字日期数据类型转换为日期时间值,并根据我的要求进一步指定搜索。但是,当我运行此查询时,我看到列名称,但列中没有数据,它只是这个列中列的标题:数据集,日期,时间,MsgID,参数,数据集 当订单应该是:数据,时间,数据集,媒体(具有Parms的子串的单独列)。此外,这仅显示过去2天的数据而不是整个数据库,这也是一个问题。

我需要一些帮助,按顺序显示列,并显示所有列中的数据。如果任何人可以对我现有的SQL查询提出任何建议或修改以获得所需的输出,那将非常感激。我知道这对于专业程序员来说是一个快速解决方案,但我仍然在学习绳索并需要一些帮助。

这是我的SQL查询:

    SELECT [Object] AS [Dataset],
    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',
    MsgId,
    Parms,
    CASE WHEN MsgID = '61' THEN SUBSTRING(Parms,35,6)
    ELSE '' --Optional ELSE
    END  AS [Dataset]
    FROM ( SELECT  ItemId,
    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) =
    CONVERT(date, DATEADD(day, -1, getdate()))) A --Converting to date again to          remove     the time part
    WHERE SUBSTRING(Parms,35,6) = 'X05219' AS [Media]
    ORDER BY [DATE] DESC;

请注意:我正在使用SQL Server Management Studio 2008。

1 个答案:

答案 0 :(得分:-1)

现在,您似乎从[日期]提取到日期和时间是不正确的。您将相同的字符串放入“日期”和“时间”