我有一个像这样的存储过程:
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
如果我在2013-05-08通过我的开始日期,我将退出:
但我想把它作为2013-05-08 16:59:59.000
出来..所以我怎么能转换这种格式
这是我可以存储在nvarchar varibale中的日期时间
答案 0 :(得分:2)
试试这个
DECLARE @StartDate NVARCHAR(100)='2013-05-08'
SELECT CONVERT(VARCHAR,@StartDate+'16:59:59', 121)
<强> SQL Fiddle 强>
答案 1 :(得分: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
答案 2 :(得分:0)
试试这个
Select cast(CONVERT(varchar(100), @startdate + ' 16:59:59') as date)
或者
Select cast(CONVERT(varchar(100), @startdate + ' 16:59:59') as datetime)
答案 3 :(得分:0)
只是不要将varchar值转换为datetime
编辑:如果你没有在我的评论中得到我的意思:
convert(varchar, convert(datetime, @startdate + ' 16:59:59', 120), 120)
答案 4 :(得分: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;