datetime 値 (SQL Server) の時刻部分を削除する最良の方法は何ですか?
日時を使用していつ作成されたかを追跡する列がありますが、それらを日ごとにグループ化したレポートを生成したいので、日時列の時間コンポーネントを無効にする方法が必要です。
どうすればいいですか?
datetime 値 (SQL Server) の時刻部分を削除する最良の方法は何ですか?
日時を使用していつ作成されたかを追跡する列がありますが、それらを日ごとにグループ化したレポートを生成したいので、日時列の時間コンポーネントを無効にする方法が必要です。
どうすればいいですか?
日付に直接変換してみませんか:
select convert(date, getdate())
これは、ラウンドではなく、日数を切り捨てます。日を丸めるにはこれを行います:
select convert(date, getdate() + 0.5)
1 つの方法はgetdate()
、列名に変更することです。
select dateadd(dd, datediff(dd, 0, getdate())+0, 0)
別の解決策は次のとおりです。
SELECT CAST( FLOOR( CAST( GETDATE() AS float) ) AS smalldatetime)
これは、datetime から日付を (文字列として) 取得する簡単な方法です。
convert(varchar, <the date field/value/etc>, 101)
ただし、このフィールドは文字列になっているため、日付順ではなくアルファベット順になることに注意してください。
はい。選択できる形式はたくさんあるので、代わりにリンクします。
http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm
投稿が示唆するように時間をゼロにしたい場合は、これを試すことができます:
select cast(convert(varchar, getdate(), 101) as datetime)
declare @CurrentDate datetime
set @CurrentDate = dateadd(dd, datediff(dd, 0, getdate()), 0)
- また -
select dateadd(dd, datediff(dd, 0, MyDateColumn), 0) as DateOnly
from tblX