Tôi đang cố gắng có được một tên ngày như thứ sáu, thứ bảy, chủ nhật, thứ hai, vv từ một ngày nhất định. Tôi biết có một xây dựng trong chức năng mà trả về tên ngày, ví dụ:Lấy tên ngày trong tuần từ Ngày đã cho trong SQL Server
SELECT DATENAME(dw,'09/23/2013') as theDayName
SQL này truy vấn trở lại:
'Monday'
Đây là tất cả OK. Nhưng tôi muốn vượt qua từng đoạn Month, Day and Year
.
Tôi đang sử dụng các chức năng DATEPART dựng sẵn để lấy tháng, ngày và năm sau cuộc hẹn hò để tôi có thể vượt qua nó để chức năng DATENAME:
SELECT DATEPART(m, GETDATE()) as theMonth -- returns 11
SELECT DATEPART(d, GETDATE()) as theDay -- returns 20
SELECT DATEPART(yy, GETDATE()) as theYear -- returns 2013
Bây giờ tôi có giá trị theo tháng, ngày, năm cá nhân, tôi vượt qua nó để DATENAME
tôi để có được những Weekname
kể từ ngày tôi muốn:
--my SQL query to return dayName
SELECT (DATENAME(dw, DATEPART(m, GETDATE())/DATEPART(d, myDateCol1)/ DATEPART(yy, getdate()))) as myNameOfDay, FirstName, LastName FROM myTable
này trả về một ngày không chính xác Tên. Tôi đã thử thay thế/bằng - để trong hàm DATENAME truy vấn SQL của tôi trở thành:
SELECT DATENAME(dw,'09/23/2013')
--becomes
SELECT DATENAME(dw,'09-23-2013')
nhưng nó vẫn trả về ngày không chính xác từ truy vấn SQL của tôi. Am i thiếu cái gì ở đây.
Vui lòng tư vấn.
Xin lưu ý của 'chọn @@ DATEFIRST' đó là đặt 'SET DATEFIRST 7;' – SQLMason