2

私は次のようなストアドプロシージャを持っています:

ALTER procedure [dbo].[startandenddtime]
@startdate nvarchar(100)
as begin 
declare @date3 nvarchar(100) = cast(CONVERT(varchar(100), @startdate + ' 16:59:59',      120) as datetime)
select date3  as startdate
end

startdate を 2013-05-08 として渡すと、次のように出力されます。 ここに画像の説明を入力 しかし、..として出力したいので、2013-05-08 16:59:59.000この形式を変換する方法は、nvarchar varibale に保存できるこの日時です。

4

5 に答える 5

2

このようにしてみてください

 DECLARE @StartDate NVARCHAR(100)='2013-05-08'
 SELECT CONVERT(VARCHAR,@StartDate+'16:59:59', 121)

もっと

SQL フィドル

于 2013-08-26T10:15:14.493 に答える
2

これを試して

ALTER procedure [dbo].[startandenddtime]
@startdate nvarchar(100)
as begin 
declare @date3 nvarchar(100) = cast(CONVERT(VARCHAR(24),@startdate ,121)) as datetime)
select date3  as startdate
end

詳細については、http://technet.microsoft.com/en-us/library/ms187928.aspxを参照してください。

于 2013-08-26T10:15:29.220 に答える
0

これを試して :

Declare @dt varchar(20);
Declare @startdate varchar(20)='2013-05-08';
SET @dt= CONVERT(VARCHAR(20), CONVERT(datetime,@startdate+' 16:59:59'), 100)
Select @dt;
于 2013-08-26T10:25:50.097 に答える
0

これを試して

Select cast(CONVERT(varchar(100), @startdate + ' 16:59:59') as date)

または

Select cast(CONVERT(varchar(100), @startdate + ' 16:59:59') as datetime)
于 2013-08-26T10:12:15.800 に答える
0

varchar 値を datetime にキャストしないでください

編集:私のコメントの意味がわからない場合:

convert(varchar, convert(datetime, @startdate + ' 16:59:59', 120), 120)
于 2013-08-26T10:13:50.060 に答える