2016-11-22 11 views
0

月曜日に発注された製品を照会しようとしていて、特定の曜日をフォーマットまたは抽出する方法が混乱しています。orderDate値...SQL:月曜日に発注された製品を一覧表示する

ここ

は、事前に

SELECT Products.productName, OrderDetails.orderNumber, Orders.orderDate 

FROM Orders, OrderDetails, Products 

WHERE Orders.orderDate LIKE '%Monday%; 

おかげで(私はSQLにかなり新しいですので、私は遠く離れて、おそらくよ...)..私が持っているものです!あなたは、SQL日付関数を使用することができます

+3

'受注、たOrderDetails、これは気ままなクロスは3つのテーブル間の結合やっている、そしてそれはあなたが意図したものはおそらくありません... Products'。あなたは前にテーブルを結合することを聞いたことがありますか –

+0

「Orders.orderDate」列のデータ型を教えてください。 –

+0

Orders.orderDate列のデータ型はdatetime – binmop

答えて

2
SELECT Products.productName , 
     OrderDetails.orderNumber , 
     DATENAME(dw,Orders.orderDate), 
     Orders.orderDate 
FROM Orders 
inner join OrderDetails 
    on OrderDetails.OrderID = Orders.ID 
inner join Products 
    on Products.ID = Orders.ProductID 
WHERE DATENAME(dw,Orders.orderDate) = 'Monday' 
0


Oracle: to_char(Orders.orderDate,'D')
MySql: DAYOFWEEK(Orders.orderDate)

1
SELECT 
    Products. 
    productName, 
    OrderDetails.orderNumber, 
    Orders.orderDate 
FROM 
Orders 
JOIN OrderDetails ON Orders.OrdersID = OrderDetails.OrderID 
JOIN Products ON OrderDetail.ProductID = Products.ProductID 
WHERE 
DATENAME(DW,Orders.orderDate) = 'Monday' 
1

使用DATEPART関数を、DATEPART(W、[DATE])は、曜日を返します。

SELECT Products.productName, OrderDetails.orderNumber, Orders.orderDate 

FROM Orders, OrderDetails, Products 

WHERE DATEPART(w,Convert(Date,Orders.orderDate))=1 

NOTE(1月曜日など):これはデカルト積で結果が得られます。これらのテーブルを結合行ってください適切FROM

+0

ありがとうございます!これは働いた! – binmop

関連する問題