プロが教えるわが家の防犯対策術!

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 …

凄い初歩的な問題の気がするのですが、何処を調べればいいのかだけでも結構ですので、何かアドバイスがいただきたいです。。
よろしくお願いいたします。

A 回答 (2件)

単純に


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をしようとしていました。

補足日時:2011/08/23 22:11
    • good
    • 0

お使いのバージョンは本当に「2008R2」でしょうか?


「2008R2」のExpress版はまだ出てなかった気もするのですが。

TIME型が追加されたのは2008からです。一度バージョンを確認してみてください。

この回答への補足

ありがとうございます。

接続先にカーソル乗せると[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/0 …

補足日時:2011/08/25 19:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す