2012-05-09 15 views
5

内の文字列からdatetime型に変換するときは、変換する必要があり、私はvarchar型変換は、店舗手順

Declare @sql varchar(100) 
Declare @ddtime datetime 

set @ddtime = '2012-02-03 22:14:50.057' 

set @sql = 'select * from table1 where tdate='[email protected] 

exec(@sql) 
+0

変更

set @sql = 'select * from table1 where tdate='''+cast (@ddtime as nvarchar(100))+'''' 

または

変更あなたは、文字列にレコードの数を選択しようとしていますか?それがあなたのコードがやっていることです。 – Lazarus

答えて

10

にキャストすることはできませんいくつかの理由のbecasue店舗の手順で以下のSQLを実行しているとき、私は変換エラーを取得していませんでしたvarcharから@ddtimeあなたは、文字列でそれを含めているので、:

Declare @sql varchar(100) 
Declare @ddtime datetime 

set @ddtime = '2012-02-03 22:14:50.057' 

set @sql = 'select * from table1 where tdate= '''+ convert(nvarchar(25), @ddtime, 121) + '''' 

exec(@sql) 

またはちょうどあなたdatetimeの代わりにvarcharとして@ddtime持っています。

Declare @ddtime varchar(25) 

convert(varchar(25), @ddtime, 121)は、最初に設定したのと同じ形式です。

How to format datetime & date in Sql Server

+0

あなたは '''等号にしていません..... –

+0

私は質問で言及していないSQLを実行しようとしています。ちょうどそれを更新しました –

+0

@ロイナミアあなたは正しいです私はそれを修正しました。ありがとう – Taryn

1

変更varchar型に@ddtime変数のデータ型。 varcharとdatetimeを連結しようとしています。

+0

私は質問で言及していないsqlを実行しようとしています。ちょうどそれを更新しました –

0

ごddtimeは、あなたがそれを文字列にCONCATカント日時

です。

Declare @ddtime nvarchar(100) 
+0

私は質問に記載havn't SQLを実行しようとしている。それでちょうどそれを更新した –

+0

jsutはprintの代わりにexecに変更する –