2

( ) データ型としてかなり前にプログラムされた日付列がありますnumeric(17,9), not null(例: 20130623.1434480600)。送信されるレポートは、1 日前に自動的に行われた結果のみで構成されるため、当日​​の前日のデータと UserCode=Automation のみに関心があります。特定のユーザー要件とともに、次のクエリを使用して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
  • 2 列目: 時間:16:54

必要な出力を取得する方法について、現在のコードに何か提案をすることはできますか?

それは大歓迎です。

4

1 に答える 1