0

「1900-01-01 05:15:00.000」を含む TYPE_TOURNE タイプの datetime 列があります。時間と分だけを選択して getdate() に追加します。

例: 現在が25/02/2013の場合、結果は =2013-02-25 05:15:00.000

select DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))+DATEPART(hh, TYPE_TOURNE) FROM TOURNE

しかし、残念ながら結果は間違っています

4

5 に答える 5

1

TYPE_TOURNEからに時間を追加してcurrent date、その時点で戻るdatetime場合。

Select convert(datetime,
               convert(varchar, getdate(),112) + ' ' + 
               convert(varchar, TYPE_TOURNE, 114)
              ) newDate
From TOURNE

または、フォーマットが必要な場合はyyyy-mm-dd hh:mm:ss.mmm、に変換しますvarchar with 121 format

Select convert(varchar,
               convert(datetime,
                 convert(varchar, getdate(),112) + ' ' + 
                 convert(varchar, TYPE_TOURNE, 114)
              ), 121) newDate
From TOURNE

またはhour & minutes、その時から必要なTYPE_TOURNE場合

Select convert(varchar,
               convert(datetime,
                 convert(varchar, getdate(),112) + ' ' + 
                 left(convert(varchar, TYPE_TOURNE, 108),6) + '00'
              ), 121) newDate
From TOURNE
于 2013-02-25T13:34:40.727 に答える
0
select DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))+DATEADD(hh,0, TYPE_TOURNE) FROM TOURNE
于 2013-02-25T13:35:44.633 に答える
0

これを試して:

DECLARE @TimeHolder DATETIME = '1900-01-01 05:15:00.000'

SELECT DATEADD(MINUTE, DATEPART(MINUTE, @TimeHolder), 
                   DATEADD(HOUR, DATEPART(HOUR, @TimeHolder), 
                        DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))))
于 2013-02-25T13:37:18.397 に答える
0

また:

SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), TYPE_TOURNE)
FROM TOURNE

または、TYPE_TOURNE を返し、プレゼンテーション層でフォーマットを処理します。

于 2013-02-25T13:34:25.750 に答える
0
SELECT CAST(CONVERT(DATE, GETDATE()) AS DATETIME) + 
CAST(CONVERT(TIME, TYPE_TOURNE) AS DATETIME)
FROM   TOURNE
于 2013-02-25T13:46:44.373 に答える