kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

SQL Server smalldatetimeへの変換で丸め処理

Sql Server 2005 standardでなった。
はまったのでメモ
datetime型の'2009-06-02 13:30:31.000'という値を
分単位まで使用したかった。その際、秒単位は無視したい。

select convert(smalldatetime,'2009-06-02 13:30:31.000')

というようなSQLを発行すると下記のような結果になる
実行結果

2009-06-02 13:31:00

31秒が丸められて、31分になる。秒部分は切り捨てだと思ってた。

なので、以下の方法で対処。
一回、秒以下を切り捨てて、それから変換する。

select convert(smalldatetime,convert(varchar(16),'2009-06-02 13:30:31.000'))

実行結果

2009-06-02 13:30:00