【发布时间】:2014-05-08 02:31:28
【问题描述】:
我想知道在 SQL Server 2008 中是否可以计算一个月中的天数...类似于我编写的这段 Javascript 代码:
function daysInMonth(month, year) {
return new Date(year, month, 0).getDate();
}
var dateForApp = new Date();
var MonthForApp = (dateForApp.getMonth() + 1);
var yearForApp = dateForApp.getFullYear();
var daysofMonth = new Array();
for (var i = 1; i <= daysInMonth(MonthForApp, yearForApp); i++) {
daysofMonth.push(parseInt(i));
} // Resulting in something like this (1,2,3,4,5,6,7,8,9,10,11,12...etc)
我现在需要弄清楚如何在 SQL 中执行此操作...到目前为止,我有一个傻瓜:
declare @Date datetime
select @Date = Getdate()
select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(@Date) as varchar)+'-'+cast(month(@Date) as varchar)+'-01' as datetime))))
这会让我知道这个月有多少天 (31),但我现在不太确定如何完成实际计数...我正在尝试 while 循环等,但没有成功.有没有人有任何想法或线索可以指出我? (我在网上搜索时什么也没找到)
【问题讨论】:
-
如果我错了,请纠正我......但是那个线程告诉我如何获得一个月中有多少天? EG:(31)三月......我知道如何得到这个......我所追求的是,现在我有我的 31,我如何构建一个 .. 1,2,3 的数组/结果集, 4,5,6,7,8,9,10,11......31
-
sql中没有数组
-
@Bobby,我知道这一点...但是为了解释这个问题,我需要让您了解我要创建的内容...然后忘记数组...我如何构建一个那么结果集是否包含该信息?
-
也许可以创建一个临时表并在循环中一次插入你的日子
-
您的问题不清楚。如果 SQL 中没有数组,那么您想要什么并不明显。你想返回一个包含 X (31) 列的行吗?是否要返回 X (31) 行?而对于这两者,包含什么数据?
标签: sql sql-server