0

DateField(DataType : DateTime) と TimeField(DataType : Float) を含むテーブルがあります。出力は DateTime である必要があります。私のテーブルは SQL Server 2008 にあります

例を次に示します。

表 A

ID  StartDate                            StartTime
1   2012-06-08 00:00:00.000              1223
2   2012-08-07 00:00:00.000              910
3   2012-05-02 00:00:00.000              1614
4   0094-07-13 00:00:00.000              1245
5   1994-04-18 00.00:00.000              2573

正しい時刻と正しい日付を検証し、これら2つを追加してテーブルBに挿入する必要があるような方法で出力を取得する必要があります

表 B :

ID    StartDateTime
1     2012-06-06 12:23:00.000
2     2012-08-07 09:10:00.000
3     2012-05-02 16:14:00.000

結果セットから意図的に行 4 と 5 を除外したことに注意してください。これらの行には有効な日時または時刻のデータが含まれていないため、無視する必要があります。

4

1 に答える 1

4

設計を修正し、日付/時刻を一緒に保存するか、少なくとも適切なデータ型を使用して日付と時刻を保存することを検討しましたか? その間:

SELECT StartDate + STUFF(RIGHT('0' + RTRIM(StartTime), 4), 3, 0, ':') 
  FROM dbo.table
  WHERE ISDATE(StartDate) = 1 AND CONVERT(INT, StartTime) < 2400

  -- wow what a bunch of absolute garbage data you have
  -- what Government agency are you paying to provide this data?

  AND CONVERT(INT, StartTime) % 100 BETWEEN 0 AND 59;
于 2012-07-25T12:02:15.303 に答える