我想将日期时间转换为特定格式。转换应该生成datetime类型的变量,而不是char或varchar。我如何在SQL Server 2000,2005和2008中执行此操作?
select CONVERT(varchar(30),getdate(),120)
我尝试了这个,但它给了我一个字符串。我想要一个没有毫秒的日期时间。 SS 2012有一个选项,但不是以前的版本。
答案 0 :(得分:2)
你不能两种方式......“datetime”类型的变量定义为:
Defines a date that is combined with a time of day
with fractional seconds that is based on a 24-hour clock
您可以以您选择的任何格式进行CONVERT和DISPLAY,但即使您将它们设置为零,日期时间数据类型也始终具有毫秒数。
答案 1 :(得分:1)
您可以从日期时间中删除毫秒,如下所示:
DATEADD(ms, -DATEPART(ms, date), date) > '2013-11-18 03:21:52'
或者可以尝试这样删除毫秒部分: -
declare @str datetime
set @str = '2013-11-18 17:24:05.784'
select convert(datetime, convert(char(19), @str, 126))