2014-11-25 63 views
0

我的SQL代码:如何将“datetime”转换为“varchar”而不用秒?

declare @date datetime 
declare @str varchar(4000) 

set @date = '2014-11-25 19:00' 
set @str = convert(varchar, @date, 120) 

select @str 

的结果看起来如下:

2014-11-25 19:00:00 

如何获得它没有秒?

+0

功能你标记的回答完全消除了时间,只是表示日期。那是你之后的事情吗?如果是这样,请编辑您的问题以明确说明问题,因为其他答案是发布时问题的更好解决方案。 – Tanner 2014-11-25 11:03:39

回答

-1
declare @date datetime 
declare @str varchar(4000) 

set @date = '2014-11-25 19:00' 
set @str = convert(varchar, @date, 101) 

or 

set @str = Convert(varchar(10), CONVERT(date, @date)) 
+0

我不明白这是如何正确的答案,因为它根本不包括时间。 OP是要求完全消除秒数。 – Tanner 2014-11-25 11:02:20

0

你几乎有....(只是需要裁剪字符串)

declare @date datetime = '2014-11-25 19:00' 
declare @str varchar(4000) 
set @str = convert(varchar, @date, 120) 

select SUBSTRING(@str, 1, 16) 
2

由于使用的是具有可预测的长日期格式,你可以指定varchar的长度类型:

set @str = convert(varchar(16), @date, 120) 
+0

虽然其余的也是有效的解决方案,但这是最好的! – NickyvV 2014-11-25 09:39:03

0

如果你将其转换为varchar,你可以简单地删除最后3个字符(或取前16),作为形式的datetime在您指定(120)将始终有19个字符:

declare @date datetime 
declare @str varchar(4000) 

set @date = '2014-11-25 19:00' 
set @str = LEFT(convert(varchar, @date, 120),16) 

select @str 
0

只使用Substring从1到16个字符

declare @date datetime 
declare @str varchar(4000) 

set @date = '2014-11-25 19:00' 
set @str = SUBSTRING(convert(varchar, @date, 120),1,16) 

select @str 

OUTPUT 
2014-11-25 19:00