- 締切済み
SQLServerでtime型への変換
SQLServer2008R2 Expressを始めて使っています。 Microsoft SQL Server Management Studioで接続してビューを作成。 SQLクエリでdatetimeのデータとtime型の引き算をして、時間の計算結果を返してもらおうとしています。 テーブル名 test_table col1 = datetime型 col2 = time型 SELECT (CAST(col1 AS time(7)) - col2) FROM test_table; 正しいか正しくないかはまだちょっとわからないのですが、上のようなSQLを実行したいのです。 しかし、 SELECT CAST('2011-01-01 01:00:00' AS time(7)) AS test; というテストを行う段階で「timeメソッドを呼び出せません」とエラーが返ってきます。 書いてるものが違うのか、何か設定そのものが違うのでしょうか。 以下を参考にしました。 http://msdn.microsoft.com/ja-jp/library/bb677243.aspx 凄い初歩的な問題の気がするのですが、何処を調べればいいのかだけでも結構ですので、何かアドバイスがいただきたいです。。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
お使いのバージョンは本当に「2008R2」でしょうか? 「2008R2」のExpress版はまだ出てなかった気もするのですが。 TIME型が追加されたのは2008からです。一度バージョンを確認してみてください。
- nora1962
- ベストアンサー率60% (431/717)
単純に select col1 - col2 from test_table ではダメですか? col1からcol2前の日付時刻を返します。
補足
datetimeからtimeを計算できるんですね。これも知りませんでした。。 すいません、質問にちゃんと書いてなかったのですが、 (col1)10:00 - (col2)9:00 = 1:00 というような col1の時刻xx:xxとcol2の時刻yy:yyとを比較するために、col1の時刻だけが欲しくてCASTをしようとしていました。
補足
ありがとうございます。 接続先にカーソル乗せると[SQL Server 10.50.1617]と出てます。 スタートメニューからはSQL Server 2008 R2と表示されているので、そこからManagement Studioを利用していました。 サーバープロパティを開くとMicrosoft SQL Server Express Editionと書いてるので、多分2008R2 Expressというのを使っていると思うのですが、、、 以下を参考にインストールを実施しました。 http://blogs.msdn.com/b/osamum/archive/2011/01/07/sql-server-2008-r2-express.aspx