2016-10-11 11 views
-1

での日付値の時間することができます私は次の値を持っているし、新しい値にハードコードに時間を必要とする:現在SQL - どのようにハードコードI select文

2016年10月11日06:00:00.000

新:

2016年10月11日21:00:00.000

これは、システムの制限により、SELECT文で指定する必要があります。

入力値は、任意の時間、分または秒(23時59分59秒に00:00:00)かもしれないが、出力値は常に午後九時00分00秒

+0

ありがとう、私は質問を更新しました。 –

+0

今日の日付で '21:00:00'を計算しようとしていますか? ( 'select DateAdd(時、21、キャスト(日付としてキャスト(GetDate()をDateTimeとして)DateTime))') – HABO

答えて

0

私は、次のステートメントでそれを考え出し:

CONVERT(datetime型、LEFT(10、、(NVARCHAR(20)DateCreated、20)に変換)+ ' 09: 0' :00、120)DateCreatedHardCoded

ダウン破損:

  1. CONVERTは、日付を「yyyy-mm-dd hh:mi:ss」の形式のNVARCHAR文字列に変更します。
  2. LEFTは変換後の文字列を取り、左から10文字に達すると切り捨てます。 -11 "
  3. CONVERTは、" yyyy-mm-dd hh:mi:ss "の日付時刻に2016-10-11 +ハードコードされた値" 09:00:00 "を適用します。
  4. ASがこれを適用します新フィールド "DateCreatedHardCoded" になり
0
のハードコードされた値であるべきです

dateaddを使用してdatetimeで時間を追加できます。

など。

select dateadd(hh, 15, '2016-10-11 06:00:00.000'); -- output 2016-10-11 21:00:00.000 
0
select dateadd(HOUR, 15, '2016-10-11 06:00:00.000') as new, 
     TO_DATE('2016-10-11 06:00:00.000') AS current 
0

は、私はこれをお勧めします:

select dateadd(hour, 21, cast(datecol as date)) 

cast(datecol as date)は時間コンポーネントを削除します。 dateadd()は、日付に21時間を追加します。

0
select SUBSTRING(CAST(Currently AS varchar),0,11)+' 21:00:00.000' AS New from tableName