我的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
如何获得它没有秒?
我的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
如何获得它没有秒?
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))
我不明白这是如何正确的答案,因为它根本不包括时间。 OP是要求完全消除秒数。 – Tanner 2014-11-25 11:02:20
你几乎有....(只是需要裁剪字符串)
declare @date datetime = '2014-11-25 19:00'
declare @str varchar(4000)
set @str = convert(varchar, @date, 120)
select SUBSTRING(@str, 1, 16)
由于使用的是具有可预测的长日期格式,你可以指定varchar
的长度类型:
set @str = convert(varchar(16), @date, 120)
虽然其余的也是有效的解决方案,但这是最好的! – NickyvV 2014-11-25 09:39:03
如果你将其转换为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
只使用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
功能你标记的回答完全消除了时间,只是表示日期。那是你之后的事情吗?如果是这样,请编辑您的问题以明确说明问题,因为其他答案是发布时问题的更好解决方案。 – Tanner 2014-11-25 11:03:39