日付と時刻を格納する列を持つテーブルがあります。その列から日付のみを取得するクエリを作成する必要があります。
SELECT CAST(CONVERT(VARCHAR, LoginTime, 101) AS datetime) FROM AuditTrail
しかし、クエリを実行すると、次のエラーが発生します。
Varcharデータ型をdatetimeデータ型に変換すると、範囲外の値が発生しました。
列のデータは日時です。例:2012-06-18 12:08:04.000日付のみを抽出して時間を削除する必要があります。[Logintime]列はdatatime形式です。
この質問の答えでわかるように、 varcharデータ型からdatetimeデータ型への変換の結果、範囲外の値が発生しました
-- set the dateformat for the current session
set dateformat dmy
-- The conversion of a varchar data type
-- to a datetime data type resulted in an out-of-range value.
select cast('2017-08-13 16:31:31' as datetime)
-- get the current session date_format
select date_format
from sys.dm_exec_sessions
where session_id = @@spid
-- set the dateformat for the current session
set dateformat ymd
-- this should work
select cast('2017-08-13 16:31:31' as datetime)