我怎樣才能將年份(例如0852或200852)轉換爲日期(例如2008-12-31或特定爲一週的結束日期,即2008-12-27星期六或一個星期開始日期,即2008-12 -21)? 星期五,星期六,星期天或星期一的任何一天都會結束。如何將一週(200851)轉換爲日期(2008-12-27)?
回答
MS SQL Server有DATEADD functionallity應該幫助...
DECLARE @date_string NCHAR(6)
SELECT @date_string = N'200852'
SELECT DATEADD(
WEEK,
CAST(RIGHT(@date_string, 2) AS INT),
DATEADD(
YEAR,
CAST(LEFT(@date_string, 4) AS INT) - 1900,
0
)
)
編輯:
對不起,錯過了一些關於使其成爲一個週六,等...
一旦你的價值,使用DATEPART得到它是什麼日子的一週,並減去從你的答案......
DECLARE @new_date DATETIME
SELECT @new_date = '2008 Dec 30'
SELECT DATEADD(DAY, 1-DATEPART(dw, @new_date), @new_date)
這會將值帶到一週的開始,具體取決於您設置的DATEFIRST。
在Oracle:
SELECT TO_DATE('04.01.' || SUBSTR(iso, 1, 4)) + (TO_NUMBER(SUBSTR(iso, 5, 2))) * 7 - TO_CHAR(TO_DATE('04.01.' || SUBSTR(iso, 1, 4)), 'D')
FROM (
SELECT '200101' AS iso
FROM dual
)
如果這是在Oracle中,檢查出TO_DATE函數與各種選項,YYYYWW。 從雙重選擇TO_Date('200852'YYYYWW);
http://www.oradev.com/oracle_date_format.jsp 一旦你得到了一週的開始,你總是可以添加天數來獲得週末日期。
日期函數幾乎是數據庫特定的。比如在MySQL中,你可以做以下的 'YYYYWW' 格式獲得一週的星期一:
select date_sub(makedate(left('YYYYWW', 4), 1 + (right('YYYYWW', 2) - 1) * 7),
interval weekday(makedate(left('YYYYWW', 4), 1 + (right('YYYYWW', 2) - 1) * 7)) DAY);
隨着MAKEDATE(左( 'YYYYWW',4),1 +(右( 'YYYYWW' ,2) - 1)* 7)你會得到一個肯定在給定的周和年的日期,並且使用date_sub函數我們會回到那周的星期一。
例子:
- 爲 '200906' 將返回「2009-02-02
- 爲 '200901',就返回 '2008-12-29'(其實這是的星期一2009年第1周)
這是一個幾乎與數據庫無關的解決方案,如果這很重要的話。
創建一個名爲ALMANAC的表,主鍵爲DATE,該表列出您計劃使用的日期的所有屬性。其中一個可能是年,另一個可能是周。您可以包含您想要使用的DATE的任何可計算功能。您還可以包括公司特定的DATE屬性,如日期是否爲公司假期。
寫一個程序來填充日期爲10年(大約3650行加上一些閏年)。該程序將使用某些編程語言的DBMS中可用的環境特定日期函數。一旦你填充了ALMANAC表,就像普通數據一樣使用它。加入數據庫中任何日期字段的主鍵。
事實證明,這對於按照周,按月,按季度和按年自動準備報告這樣的事情非常有用。
如果DATE的粒度不夠細,您甚至可以將年曆分成更小的時間單位,如3班是一天的班次。
- 1. 將日期轉換爲日期名稱週一,週二,週三
- 2. 如何將日期轉換爲週數
- 3. 日期轉換爲週數
- 4. 如何將一週數量轉換爲Javascript中的日期
- 5. 如何使用python將日期轉換爲每週級別並將週日用作周開始日期?
- 6. 使用awk,如何將日期轉換爲周和季?
- 7. 轉換日期爲Wyy(週數)格式
- 8. 如何將日期日期轉換爲英文日期格式?
- 9. 如何將UTC日期轉換爲NSDate?
- 10. 如何將FILETIME轉換爲Excel日期
- 11. 如何將文本轉換爲日期?
- 12. 如何將日期轉換爲文本
- 13. 如何將日期轉換爲YYYYDDD?
- 14. zedgraph,如何將XAxis.Scale.Min轉換爲日期
- 15. 如何將Hibernate.TIMESTAMP轉換爲日期?
- 16. 如何將日期轉換爲單詞?
- 17. 如何將datetime轉換爲短日期?
- 18. 如何將日期轉換爲整數?
- 19. 如何將Oracle DateTime轉換爲日期
- 20. 將日期轉換爲varchar,然後將其轉換回日期
- 21. 如何將日期轉換爲年,月,日日期格式
- 22. 將SQL日期轉換爲SAS日期
- 23. 將MySQL日期轉換爲Java日期
- 24. PHP - 將日期轉換爲UTC日期
- 25. 將DAAppearanceTime轉換爲日期
- 26. 如何將solr日期轉換爲javascript日期?
- 27. 我如何將日期時間轉換爲C#中的日期
- 28. Javascript:如何將UTC日期轉換爲本地日期?
- 29. 如何將gwt日期轉換爲javascript日期?
- 30. 如何將JSF日期轉換爲MySQL日期?
你在哪個數據庫上? – 2009-02-03 12:12:17