4

私のテーブルにはDateTimeHour列があります。

例 :2012-05-14 00:00:00.000および1230

hourこの列を自分のDatetime列に追加するにはどうすればよいですか?

2012-05-14 12:30:00.000

私はこれで試しました:

SELECT DATE_DEBUT, HEURE_DEBUT, 
   DATEADD(hour, CONVERT(int, SUBSTRING(HEURE_DEBUT, 0, 2)), DATE_DEBUT) AS DateTemp, 
   DATEADD(hour, CONVERT(int, SUBSTRING(HEURE_DEBUT, 2, 2)), DateTemp) AS DateComplete
FROM ESPTEMPS_PROGRAMMATION

しかし、それは機能しません。

前もってありがとう、スティーブ

4

1 に答える 1

4

私が理解していることから、最初の2桁を時間として追加し、次の2桁を分として追加したいのですが、DATEADD通話でこれを行っていません-両方の部分を次のように追加しています-HOUR代わりにこれを試してください:

SELECT DATE_DEBUT, HEURE_DEBUT, 
   DATEADD(MINUTE, CONVERT(int, SUBSTRING(HEURE_DEBUT, 3, 2)), 
              DATEADD(HOUR, CONVERT(int, SUBSTRING(HEURE_DEBUT, 1, 2)), DATE_DEBUT))
FROM ESPTEMPS_PROGRAMMATION

ここでは、入れ子になった 2 つを使用していますDATEADD。内側DATEADDは時間を追加し、外側は時間を追加した結果に分を追加します。

またSUBSTRING、SQL Server では1-based です。たとえば、文字列の最初の文字は位置 1 にあります (想定しているように、0 ではありません)。

于 2011-11-05T14:24:42.747 に答える