Sql server 2008 如何连接日期和日期;年到一列sql
我在一列中有日期,在一列中有年份,我需要连接并得到2017年1月的答案,应该是实际月份顺序,这很简单。我假设两种列数据类型都是DateTime或Date。请尝试以下操作:Sql server 2008 如何连接日期和日期;年到一列sql,sql-server-2008,Sql Server 2008,我在一列中有日期,在一列中有年份,我需要连接并得到2017年1月的答案,应该是实际月份顺序,这很简单。我假设两种列数据类型都是DateTime或Date。请尝试以下操作: SELECT CONCAT(column1, ',', column2) AS Date, FROM table; SELECT CONCAT(SUBSTRING(DATENAME(month, YourMonthColumn), 0,4), '-', Year(YourYearColumn)) FROM Y
SELECT CONCAT(column1, ',', column2) AS Date,
FROM table;
SELECT CONCAT(SUBSTRING(DATENAME(month, YourMonthColumn), 0,4), '-', Year(YourYearColumn))
FROM YourTableName
Sql Server 2008兼容:(无
concat()
和无format()
)
使用106(或113)的样式,只需使用mon-yyyy
部分,并将'
替换为'-'
,
并使用截短到月份的日期,因此我们可以使用
dateadd(month,datediff(month,0,[Date]),0)对其进行分组和订购:
rextester演示:
返回:
+-----------+------+
| MonthYear | Days |
+-----------+------+
| Dec-2016 | 31 |
| Jan-2017 | 31 |
| Feb-2017 | 28 |
| Mar-2017 | 10 |
+-----------+------+
交替使用月份和连接年份:
select MonthYear = left(datename(month,dateadd(month, datediff(month, 0, [Date]), 0)),3)
+ '-'
+ convert(char(4),year(dateadd(month, datediff(month, 0, [Date]), 0)))
, Days = count(*)
from dates
group by dateadd(month, datediff(month, 0, [Date]), 0)
order by dateadd(month, datediff(month, 0, [Date]), 0)
添加一些数据样本并指定数据类型
select MonthYear = left(datename(month,dateadd(month, datediff(month, 0, [Date]), 0)),3)
+ '-'
+ convert(char(4),year(dateadd(month, datediff(month, 0, [Date]), 0)))
, Days = count(*)
from dates
group by dateadd(month, datediff(month, 0, [Date]), 0)
order by dateadd(month, datediff(month, 0, [Date]), 0)