2014-10-30 58 views
0

我有一個SQL服務器數據庫,我想從列VL_DR之間的兩個給定的日期和日期是星期五。獲取兩個日期之間的每個星期五的數據

"SELECT VL_DR FROM table_VL WHERE date>='" + date_start 
       + "' AND date<='" + date_end 
       + "' AND DATENAME(dw, date)='Friday'" 

但在請求後,我有一個空列表,而我應該有一些值。 我應該如何解決以獲得正確的請求?

+0

什麼Table_VL樣子,結構和樣本數據 – automatic 2014-10-30 17:33:09

+0

的table_VL有一列VL_DR,列日和其他列不是有用的在這裏。在VL_DR中,日期列中有數字和日期時間。 – Eagain 2014-10-31 09:29:17

回答

2

如果它的SQL Server

嘗試

SELECT VL_DR FROM table_VL WHERE ([date] BETWEEN date_start and date_end) AND LOWER(DATENAME(dw, [date]))='friday'

如果它的MySQL

嘗試

SELECT VL_DR FROM table_VL WHERE ([date] BETWEEN date_start and date_end) AND DAYNAME([date])='Friday'

+0

它在SQL服務器(我編輯了我的文章),但與您的請求它仍然是一個空列表時,它不應該。你有什麼想法,爲什麼? – Eagain 2014-10-31 10:04:30

+0

@Lukasc將DATENAME(dw,[date])='Friday''更改爲'LOWER(DATENAME(dw,[date]))='friday''如果您確定有服務器區分大小寫是該日期範圍內星期五的數據。 – Fred 2014-10-31 11:12:55

+0

我檢查過日期範圍內有星期五的數據,但它仍然不能用較低的功能。 – Eagain 2014-10-31 11:22:57

0

假設MySQL。 DAYNAME應該工作

"SELECT VL_DR FROM table_VL WHERE date>='" + date_start 
      + "' AND date<='" + date_end 
      + "' AND DAYNAME(date)='Friday'" 

例子:

SELECT DAYNAME('2008-05-15'); 

結果Thursday

0

此代碼將工作的基礎上,我有一個股票代碼數據庫中的數據。這是針對MS-SQL的。

SELECT 
    CloseDate, DatePart(WEEKDAY,CloseDate) AS DAY_OF_WEEK_No , SharePrice 
FROM 
    SharePrice 
WHERE 
    CloseDate BETWEEN '01 October 2014' AND '31 October 2014' 
AND 
    DATEPART(WEEKDAY,CloseDate) = 6 -- 1=Sunday; 7=Saturday 
AND 
    ShareCode = 'AGL' 
相關問題