在sql中转换日期时间格式

时间:2013-08-26 10:09:33

标签: sql-server

我有一个像这样的存储过程:

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通过我的开始日期,我将退出: enter image description here 但我想把它作为2013-05-08 16:59:59.000出来..所以我怎么能转换这种格式 这是我可以存储在nvarchar varibale中的日期时间

5 个答案:

答案 0 :(得分:2)

试试这个

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

MORE

<强> 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;