回答
我想你想是這樣的
DECLARE @str VARCHAR(50)= '1 year 12 months 2 days'
DECLARE @days INT= LEFT(@str, Charindex(' ', @str)),
@months INT = Substring(@str, Charindex('months', @str) - 3, 2),
@years INT = Substring(@str, Charindex('days', @str) - 3, 2);
WITH days_back
AS (SELECT Dateadd(day, [email protected], Cast(Getdate() AS DATE)) AS day_date),
month_back
AS (SELECT Dateadd(month, [email protected], day_date) AS month_date
FROM days_back)
SELECT Result = Dateadd(year, [email protected], month_date)
FROM month_back
這個邏輯我可以使用,但最大的戰鬥如何拆分字符串像需要從12年11個月10天分開幾個月天 –
@YashShukla - 更新我的答案從字符串提取值 –
是的,像這樣現在我們可以分開數字與第一空間,但我的價值是一個單一的字符串,所以有什麼辦法可以從單獨的字符串中分離出來,如單獨的年份月份和日期與「1年2個月2天」。你非常接近.. –
declare @fuzzy_date varchar(255) = '11 years 10 months 12 days'
declare @date date
declare @startdate date = '1999-12-31'
declare @today_to_before date = getdate()
declare @today_to_after date = getdate()
declare @years int, @months int, @days int, @foo varchar(255)
Set @years = left(@fuzzy_date, charindex('years', @fuzzy_date) - 1)
Select @fuzzy_date = right(@fuzzy_date, len(@fuzzy_date) - charindex('years', @fuzzy_date) - 5)
select @months = left(@fuzzy_date, charindex('months', @fuzzy_date) - 1)
Select @days = replace(right(@fuzzy_date, len(@fuzzy_date) - charindex('months', @fuzzy_date) - 6), 'days', '')
Select @years, @months, @days
Set @date = dateadd(yy, @years, @startdate)
Set @date = dateadd(mm, @months, @date)
Set @date = dateadd(dd, @days, @date)
Set @today_to_after = dateadd(yy, @years, @today_to_after)
Set @today_to_after = dateadd(mm, @months, @today_to_after)
Set @today_to_after = dateadd(dd, @days, @today_to_after)
Set @today_to_before = dateadd(yy, [email protected], @today_to_before)
Set @today_to_before = dateadd(mm, [email protected], @today_to_before)
Set @today_to_before = dateadd(dd, [email protected], @today_to_before)
Select @date,@today_to_after,@today_to_before
是這是我想要的,但只有一個改變istead開始日期,我們可以把當前日期作爲參考,然後減去它來計算日期? –
@YashShukla你應該能夠自己處理這個小調整? –
我am.Not沒有經驗的sql –
- 1. 在SQL Server 2008中將字符串轉換爲日期格式
- 2. 將字符串轉換爲SQL日期
- 3. 將日期轉換爲字符串SQL
- 4. 將字符串轉換爲日期。 SQL
- 5. SQL將字符串轉換爲日期
- 6. 將日期轉換爲SQL Server 2005中的字符串
- 7. 從字符串SQL Server日期轉換
- 8. 轉換日期爲字符串,將字符串和逆變換爲日期SQL
- 9. Microsoft SQL Server 2005將日期/時間轉換爲字符串
- 10. SQL Server將日期時間轉換爲字符串
- 11. 將日期字符串轉換爲SQL可讀日期格式
- 12. SQL Server將數字轉換爲日期
- 13. 將字符串轉換爲日期並將日期轉換回字符串
- 14. 將字符串轉換爲日期
- 15. SQL Server:將字符串轉換爲數字 - 從字符串轉換日期和/或時間時轉換失敗
- 16. 如何將日期字符串轉換爲sql日期格式
- 17. 將字符串日期轉換爲SQL日期
- 18. SQL Server將字符串轉換爲datetime
- 19. 在SQL Server中,將'mmmm dd,yyy'字符串轉換爲日期時間格式
- 20. Bash - 將字符串轉換爲日期
- 21. Java:將字符串轉換爲日期
- 22. 將字符串轉換爲日期python
- 23. SimpleDateFormat將字符串轉換爲日期
- 24. Sqlite將字符串轉換爲日期
- 25. 將字符串轉換爲日期SparkR
- 26. 將字符串轉換爲日期
- 27. 將字符串轉換爲日期
- 28. Swift將字符串轉換爲日期
- 29. Android將字符串轉換爲日期
- 30. 將日期轉換爲字符串
你所期望的日期是? sql中的日期是時間點,而不是範圍。另外,你正在使用哪些DBMS? sql server <> mysql。 –
我正在使用SQL服務器2012年,我只需要日期沒有時間。任何日期格式有效 –
您可以比較這11年10個月12日從當前日期,然後計算日期 –