我正在使用SQL Server 2008 R2,我的表中有一个名为StartDate的字段,如下所示:
1977-10-17 00:00:00.000
如何更改这些值以表示10-17-1977?此外,如果日期是1900-01-01 00:00:00.000我想将其更改为空值。是否有针对这些类型的更改的命令或存储过程?
感谢 尼克
答案 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)。
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处的代码