我在SQL Server中有一个datetime
列,它给了我这样的数据10/27/2010 12:57:49 pm
,我想查询此列,但只让SQL Server返回日期月和年 - 例如。 2010 10 27
或类似的东西。将SQL Server日期时间转换为更短的日期格式
我应该研究哪些功能?
我应该试图转换为另一种日期数据类型吗?或者简单地将其转换为字符串?
我在SQL Server中有一个datetime
列,它给了我这样的数据10/27/2010 12:57:49 pm
,我想查询此列,但只让SQL Server返回日期月和年 - 例如。 2010 10 27
或类似的东西。将SQL Server日期时间转换为更短的日期格式
我应该研究哪些功能?
我应该试图转换为另一种日期数据类型吗?或者简单地将其转换为字符串?
看起来106是“dd mon yy” 和“dd/MM/yyyy”是103 – nahab 2012-12-07 15:30:10
@nahab您是对的。此外,我必须使用varchar(11)而不是varchar(10)来防止年份缩短(例如,我看到195而不是1953年) – Henrov 2013-06-03 10:31:48
另外,如果要格式化结果,则可以使用101 mm/dd/yyyy – iliketocode 2017-08-11 14:17:04
除了CAST和CONVERT,如果您使用的是SQL Server 2008中,你可以转换成日期类型(或使用该类型下手),然后有选择地重新转换为varchar:
declare @myDate date
set @myDate = getdate()
print cast(@myDate as varchar(10))
输出:
2012-01-17
如果您需要在日期格式的结果,你可以使用:
Select Convert(DateTime, Convert(VarChar, GetDate(), 101))
只需添加当日关键词。 例如选择日期(订单日期),从订单中计数(1)where orderdate>'2014-10-01'按日期(订单日期);
orderdate是日期时间。 此查询将显示该日期的订单而非日期时间。
应用于日期时间列的日期关键字会将其更改为短日期。
在SQL Server 2005,我会用这样的:
select replace(convert(char(10),getdate(),102),'.',' ')
结果:2015年03 05
对于SQL Server的任何版本:DATEADD(DD,DATEDIFF (dd,0,getdate()),0)
mm/dd/yy的最短日期格式可以通过以下方式获得:
Select Convert(varchar(8),getdate(),1)
SQL Server的哪个**版**? SQL Server 2008引入了一系列新的与日期和时间相关的数据类型,例如'DATE' - 所以如果你在2008年,你可以使用'SELECT CAST(YourDateTimeColumn AS DATE)',你只需要返回日期 - 没有时间部分。 – 2012-01-17 20:25:00
看看这篇文章:http://msdn.microsoft.com/en-us/library/ms187928.aspx具体>日期和时间样式 – Brissles 2012-01-17 20:21:47
@marc_s http://meta.stackoverflow。com/questions/314561/are-votes-to-a-question-comment-higher-valuable-than-votes-for-an-answer – apaul 2016-01-12 21:33:23