将datetime转换为特定格式?

时间:2013-11-18 19:55:06

标签: sql sql-server datetime

我想将日期时间转换为特定格式。转换应该生成datetime类型的变量,而不是char或varchar。我如何在SQL Server 2000,2005和2008中执行此操作?

select CONVERT(varchar(30),getdate(),120)

我尝试了这个,但它给了我一个字符串。我想要一个没有毫秒的日期时间。 SS 2012有一个选项,但不是以前的版本。

http://blog.sqlauthority.com/2012/11/21/sql-server-display-datetime-in-specific-format-sql-in-sixty-seconds-033-video/

2 个答案:

答案 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'

同时检查SQL Server Date Formats

或者可以尝试这样删除毫秒部分: -

declare @str datetime
set @str = '2013-11-18 17:24:05.784'
select convert(datetime, convert(char(19), @str, 126))