4

在 MSSQL 中,给定一年“yyyy”,我将如何将开始日期返回为 01/01/yyyy,将结束日期返回为 12/31/yyyy。

4

4 回答 4

4
declare @yyyy int; set @yyyy = 2009;
select DATEADD(yy,@yyyy-1900,0), DATEADD(yy,@yyyy-1899,-1)
于 2012-12-13T23:53:47.663 回答
1

您使用的是 SQL Server 2012(最新版本)吗?

如果是,您可以使用新的DATEFROMPARTSDATETIMEFROMPARTS功能。

第一个链接的示例:

SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS Result;

...将返回:

Result
----------------------------------
2010-12-31

(1 row(s) affected)
于 2012-12-14T06:26:05.317 回答
0

如果你使用 MySQL 数据库,你也可以试试这个;-

 SELECT CONCAT ('01/01','/',2009) start_date ,concat ('12/31','/',2009) end_date 
 FROM table_name
于 2012-12-14T06:36:14.077 回答
0

询问:

declare @yyyy int; set @yyyy = 2012;

SELECT convert(varchar,DATEADD(yyyy, @yyyy - 1900, 0), 101) AS StartDate, 
       convert(varchar,DATEADD(yyyy, @yyyy - 1899, -1), 101) AS EndDate
--OR
SELECT convert(varchar,'01/01/'+CAST(@yyyy as varchar(4)), 101) AS StartDate,
       convert(varchar,'12/31/'+CAST(@yyyy as varchar(4)), 101) AS EndDate

结果:

StartDate   EndDate
01/01/2012  12/31/2012
于 2012-12-14T08:31:06.390 回答