如何在SQL Server中更改日期的格式

时间:2014-04-28 18:43:40

标签: sql-server stored-procedures sql-server-2008-r2

我正在使用SQL Server 2008 R2,我的表中有一个名为StartDate的字段,如下所示:

1977-10-17 00:00:00.000

如何更改这些值以表示10-17-1977?此外,如果日期是1900-01-01 00:00:00.000我想将其更改为空值。是否有针对这些类型的更改的命令或存储过程?

感谢 尼克

4 个答案:

答案 0 :(得分:2)

尝试

declare @date varchar(10)
set @date = CONVERT(varchar(10),@startdate,110)

答案 1 :(得分:1)

SELECT CASE WHEN  StartDate = '1900-01-01 00:00:00.000' THEN NULL
         ELSE CONVERT(VARCHAR(10), StartDate , 110)
       END AS StartDate 

FROM Table_Name

答案 2 :(得分:1)

您可能希望使用convert来获取您之后的格式,例如:

select convert(varchar(10), MyColumn, 110) from MyTable;

我们将您的日期时间转换为字符值,但具有特定日期样式(样式110)。

您的空问题可以使用case开关或nullif功能进行排序:

select nullif(MyColumn, '19000101') from MyTable;
select case when MyColumn = '19000101' then null else MyColumn end from MyTable;

请注意,我假设MyColumn存储为日期时间或类似的数据类型。如果没有,那么您可以根据上述文档cast这样做。

随意组合功能,如:

select convert(varchar(10), nullif(MyColumn, '19000101'), 110) from MyTable;

答案 3 :(得分:0)

如果您希望以请求的日期格式显示时间,请尝试:

SELECT CONVERT(VARCHAR(10), GETDATE(), 110) + substring(CONVERT(VARCHAR(23), GETDATE(), 121),12,12)

有关使用CONVERT命令的日期的不同格式的比较列表,请使用http://rossql.blogspot.com/2014/04/sql-format-of-date-and-time-way-i-like.html处的代码