我試圖從我的日期列中只獲取月份,而我似乎無法使用我的查詢來獲取它。從MM-DD-YYYY格式獲取月sql
DATE
是我的專欄,我只想顯示月份。你們能幫助我嗎?
查詢:
SELECT MONTH(CONVERT(VARCHAR(8), GETDATE(DATE), 1)) FROM adjtime WHERE EMPLOYEE = 302
我試圖從我的日期列中只獲取月份,而我似乎無法使用我的查詢來獲取它。從MM-DD-YYYY格式獲取月sql
DATE
是我的專欄,我只想顯示月份。你們能幫助我嗎?
查詢:
SELECT MONTH(CONVERT(VARCHAR(8), GETDATE(DATE), 1)) FROM adjtime WHERE EMPLOYEE = 302
如果DATE
is in varchar,you need to convert as DATE
format using
STR_TO_DATE(`DATE`, '%m/%d/%Y')
樣品執行與樣本數據:
CREATE TABLE `adjtime` (EMPLOYEE int, `DATE` VARCHAR (20));
INSERT INTO `adjtime` (EMPLOYEE , `DATE`)
SELECT 302, '1/1/2017' UNION
SELECT 302, '11/22/2017' UNION
SELECT 302, '2/20/2017' UNION
SELECT 301, '3/6/2017';
SELECT MONTH(STR_TO_DATE(`DATE`, '%m/%d/%Y')) AS `MonthNumber`
FROM `adjtime`
WHERE `EMPLOYEE` = 302;
或
SELECT MONTHNAME(STR_TO_DATE(`DATE`, '%m/%d/%Y')) AS `MonthName`
FROM `adjtime`
WHERE `EMPLOYEE` = 302;
Rextester演示:http://rextester.com/GFOTO88036
這工作!!!!謝謝!!!! :D –
@VirgilCruz請讓這是一個關於如何提出一個好問題的教訓。 Gordon猜對了Sql Server。年輕人猜對了甲骨文。我猜你的專欄是日期/日期時間數據類型。請不要讓我們猜測。首先在問題中包含所有相關的詳細信息。 –
如果你有DATE
列,然後在SQL Server中,你可以通過執行獲得數字月份:
select month(datecol)
或
select datepart(month, datecol)
如果您想要月份的名稱,請使用datename()
:
select datename(month, datecol)
Oracle? SQL Server? MySQL的?
甲骨文語法:
TO_CHAR('05/29/2017', 'MONTH')
好時,MySQL有month
和monthname
功能。您可以在official documentation.
瞭解他們,如果它是MySQL中,您的查詢可能應該是這樣的:
SELECT MONTH(`DATE`)
FROM `adjtime`
WHERE `EMPLOYEE` = 302
要獲得一個月的名稱,使用這樣的:
SELECT MONTHNAME(`DATE`)
FROM `adjtime`
WHERE `EMPLOYEE` = 302
查詢工作。但它返回空結果..我的日期格式是2017年1月1日。也許它的閱讀喜歡2017.1.1? –
日期不以顯示格式存儲。無論如何,我看到Arulkumar已經給你正確的答案。 –
您的代碼看起來很像SQL服務器,所以我改變了標籤。 –
「DATE」列的數據類型是「DATETIME」還是其他?不明白你爲什麼使用'GETDATE(DATE)',在這種情況下'SELECT MONTH(CONVERT(VARCHAR(8),[DATE],1))'會工作。 – Arulkumar
我的DATE列就像是這樣1/1/2017 .... 和我正在使用phpmyadmin中的MySql –