【发布时间】:2015-01-26 22:36:19
【问题描述】:
我正在创建一个新的 SQL 表,该表将包含一个日期列,其中仅包含月份和年份(例如:2014 年 11 月)。我担心的是我需要在查询中匹配此列才能执行 JOIN。该查询的相关摘录如下所示:
(
SELECT
ReservationStayID,
datename(m,StayDate) + ' ' + cast(datepart(yyyy,StayDate) as varchar) as [MTH],
count(*) AS [Nights Spent],
avg(RateAmount) as [Rate],
min(CreatedOn) as CreatedOn,
min(StayDate) as [DateOfArrival],
max(StayDate) as [DateOfDeparture]
FROM ReservationStayDate
GROUP BY ReservationStayID, datename(m,StayDate) + ' ' + cast(datepart(yyyy,StayDate) as varchar)
) x ON x.ReservationStayID = b.ReservationStayID
我的新表的日期列将与上面查询的第 3 行的输出相匹配(即 datename(m,StayDate.....as [MTH])
我只想把它放在我的新表中,这样我以后在做 JOINS 等时就不会搞砸了。
我读过我可以使用 smalldate,或者将月份和年份拆分为 2 列中的 Varchar。那么,你会推荐什么?
【问题讨论】:
-
尊敬的管理员,如果您认为这是基于意见的问题,请删除问题。由于我根据实际情况给出了我的 SQL 查询示例,我认为问题与事实有关,因此提供的答案将与这种情况相关。
标签: sql-server date types sqldatatypes