我有数据库与项目表是在值DATETIME,月查询多到5月iself通过SubPublications表回报(演员?转换?),从一个独特的一年存储过程
加入到我的存储过程返回所有不同年 - 月的连击来自未与特定(由ID)出版物(因此2个PARAMS,见下文)指定类型的出版物的RELEASEDATE字段。
问题:
的PROC工作正常,但我想用1虚拟日期返回列类型DATETIME2因为它是现在,它返回一个整数的2列。 我该怎么做?
我知道我可以做转换在我的应用程序代码,但我宁愿把它交付从一个数据库中的日期时间。
我的SQL不是很大。我甚至不知道我是否应该使用演员阵容或转换器。
我不能在网上像这样的查询中转换回日期时间找到一个例子。谁能帮忙?下面是我写的PROC,因为它代表:
ALTER PROCEDURE sp_DistinctPubMonthYears
@PubType char(1),
@PubId int = 0
AS
BEGIN
SELECT
DISTINCT TOP (100) PERCENT
DATEPART(month, ReleaseDate) AS month,
DATEPART(year, ReleaseDate) AS year
FROM(
SELECT
Publications.ReleaseDate AS ReleaseDate,
Publications.PublicationId As PubId,
Publications.PubType AS PubType,
SubPublications.PublicationId AS ParentId
FROM
Publications LEFT JOIN SubPublications
ON
Publications.PublicationId = SubPublications.PublicationId
WHERE
Publications.PubType = @PubType AND
Publications.PublicationId <> @PubId AND
(
SubPublications.PublicationId <> @PubId OR
/*either it's parent is NOT the one we're searching on or */
SubPublications.PublicationId IS NULL
/*or it's not joined to anything at all */
)
) AS sub
ORDER BY year ASC, month ASC
END
GO
你说的“1虚设日期”是什么意思?啊,你mea“天” – gbn 2011-05-22 15:38:14
考虑不命名你的存储过程,前缀为'sp_'。看到这个:http://sqlserverpedia.com/blog/sql-server-bloggers/stored-procedure-performance-using-%E2%80%9Csp_%E2%80%9D-prefix-%E2%80%93-myth - 或 - 事实/ – Tahbaza 2011-05-22 16:00:30
@Tahbaza:我不知道。 +1。 – Faust 2011-05-22 20:30:38