は、私は2つの列があります。1つのdatetimeに2つのnvarcharカラム。 MSSQL
date(nvarchar) - it looks like '2015-04-15 00:00:00.000'
time(nvarchar) - looks like '1899-12-30 11:20:25.000'
は、私は1つの列(日時)にそのマージする必要があります。私はそれをどうやってできるの?
は、私は2つの列があります。1つのdatetimeに2つのnvarcharカラム。 MSSQL
date(nvarchar) - it looks like '2015-04-15 00:00:00.000'
time(nvarchar) - looks like '1899-12-30 11:20:25.000'
は、私は1つの列(日時)にそのマージする必要があります。私はそれをどうやってできるの?
まず、日付/時刻の値を文字として保存しないでください。しかし、あなたはそれらを変換して追加することができます:
select cast(datechar as datetime) + cast(right(timechar, 12) as time)
私はちょうど実現しました。デフォルトの日付/時刻形式が分数秒を理解しているかどうかは思い出せません。 、@GordonLinoffが述べたように、あなたが行うことができ、また
UPDATE TABLE
SET [FullDate] = DATEADD(SECOND, SECOND(TIME), DATEADD(MINUTE, MINUTE(TIME), DATEADD(HOUR, HOUR(TIME), DATE)))
しかし:あなたはたとえば3列([FullDate]
)を追加した後、あなたは以下のコードを使用することができます
select (convert(datetime, datechar, 121) +
convert(time, convert(datetime, timechar, 121))
) as datetimeval
:以下は安全ですtime
の部分をdatetime
にキャストしてください。したがって、次のようなものがあります。
UPDATE TABLE
SET [FullDate] = CAST([date] as DATETIME) + CAST([time] AS DATETIME)
データセットごとに追加が必要ですか? (日付と時刻) –
@RaduGheorghiu。 。 。ドキュメンテーションがうまくいかないことに驚いていますが、「プラス(+)およびマイナス( - )演算子を使用して、datetimeおよびsmalldatetime値の算術演算を実行することもできます。時間への変換は、 'time'コンポーネントのみが存在することを保証することです。私は、SQL Serverがそれを 'datetime'に変換すると思います。 –