我想,以填補在SQL Server表「日曆」在一個vb.net窗體上點擊一個按鈕,我必須填寫下一列:日期,week_weekend(此日期(星期一,星期二,...),period_name(季節,假日),code_schoolholiday(y或N),code_holiday(聖誕節,新年等)存儲過程來填充日曆
回答
找到一週使用的日期select DATEPART(weekday, _date_goes_here_)
這會給你一個表示當天的數字。您可以使用下面的代碼爲今天獲得一天的名字:
-- EDIT as Martin rightly pointed out, you need to take
-- @@datefirst into account here's a version of code which will
-- return the right dayname regardless of this variable's value
select case DATEPART(weekday, getdate() + @@datefirst)
when 1 then 'Sunday'
when 2 then 'Monday'
when 3 then 'Tuesday'
when 4 then 'Wednesday'
when 5 then 'Thursday'
when 6 then 'Friday'
when 7 then 'Saturday'
end
你也可以很容易找到,如果這一天是週末:
select case DATEPART(weekday, getdate())
when 1 then 'weekend'
when 7 then 'weekend'
else 'weekday'
end
更多有關DATEPART
功能at MSDN
我們插入有很多日期的很多行和計算的數據,你需要下面的代碼(今天選擇和以下99天的變化,當然,你需要用0把它包聲明):
select v1.x * 10 + v2.x as dayoffset
, cast((GETDATE() + v1.x * 10 + v2.x) as DATE) as calendardate
, case DATEPART(weekday, cast((GETDATE() + v1.x * 10 + v2.x) as DATE))
when 1 then 'Sunday'
when 2 then 'Monday'
when 3 then 'Tuesday'
when 4 then 'Wednesday'
when 5 then 'Thursday'
when 6 then 'Friday'
when 7 then 'Saturday'
end as dayname
from (values (1), (2), (3), (4), (5), (6), (7), (8), (9), (0)) v1(x)
cross join (values (1), (2), (3), (4), (5), (6), (7), (8), (9), (0)) v2(x)
order by v1.x * 10 + v2.x
你需要縮小你的要求爲其他數據:
- 定義季節和標準的名稱,以決定每一天是哪個季節 - 我相信你可以在這裏再次輕鬆使用DATEPART功能。
- 學校假期發生在每個國家甚至每個大個國家地區不同天。縮小範圍。同樣在一些國家(如波蘭),有些年份在週末和銀行假期之間增加了額外的免費天數,以便延長假期,並且作爲交換,孩子們在一週後的星期六去上學。
- 定義你明白節假日 - 無天?特殊宗教儀式/事件發生的日子?如果是的話那麼哪個宗教,國家,宗教味道呢?我相信再次
DATEPART
功能將成爲你在這裏的好朋友。
要確定除夕:
select d, case
when DATEPART(month, d) = 12 and DATEPART(DAY, d) = 31 then 'New years eve'
else 'other day'
end
from (
select CAST('2010-12-31' as datetime)
union
select GETDATE()
) t(d)
DATEPART(平日...的'結果'不能保證像你一樣。你需要考慮到的'@@ DATEFIRST' – 2011-05-09 11:00:34
@馬丁你是如此吧!謝謝你,我會更新我的答案。 – Jakub 2011-05-09 11:08:29
的'VALUES'位是特定於SQL Server – 2011-05-09 11:33:08
- 1. 填充@ html.listboxfor使用存儲過程
- 2. 如何填充從存儲過程
- 3. 從存儲過程填充gridview問題
- 4. c#gridview不填充存儲過程sql
- 5. SQL Server存儲過程產生日曆
- 6. MVC 3 - 使用存儲過程來填充模型
- 7. 在LinqDataSource中使用存儲的過程來填充GridView
- 8. EF和存儲過程來填充實體的條目
- 9. 用日曆天填充UITableView
- 10. 用約會填充日曆
- 11. 日曆從右側填充
- 12. 使用現有存儲過程創建存儲過程以填充新表格
- 13. 通過序列填充值時存儲過程中的錯誤
- 14. 使用存儲過程填充DataGrid(Silverlight業務應用程序)
- 15. 訪問形式使用SQL Server查詢/存儲過程來填充字段
- 16. 動態構建select語句並使用它來填充存儲過程變量
- 17. 它使用EXEC轉換存儲過程來填充表,以標量值函數
- 18. 填充日曆廣場的一半bgcolor
- 19. Gtk日曆填充整個窗口
- 20. 自定義日曆應填充屏幕
- 21. 如何使用javascript填充日曆?
- 22. 填充日曆的最有效方法?
- 23. 如何爲日曆填充gridview?
- 24. 基於RSS源填充日曆
- 25. 角UI日曆填充兩次
- 26. 用空白單元填充日曆
- 27. 按月填充ggplot2日曆熱圖
- 28. 用用戶時區填充jQuery日曆
- 29. 高效填充ASP.Net日曆控件
- 30. VB日曆 - 填充mysql事件表
爲什麼你需要一個按鈕的點擊,以填補這相對於只產生[若干輔助日曆表(HTTP:// codeinet。 blogspot.com/2006/08/auxiliary-calendar-table-for-sql.html)提前? – 2011-05-09 09:47:17