2017-05-29 1 views
1

私の日付の列から月だけを取得しようとしていますが、クエリを使用して取得できないようです。MM-DD-YYYY形式から月を取得するSQL

DATEは、私の列フィールドです。月を表示したいだけです。あなたの誰かが私にこれを助けてくれる?

問合せ:

SELECT MONTH(CONVERT(VARCHAR(8), GETDATE(DATE), 1)) FROM adjtime WHERE EMPLOYEE = 302 
+1

あなたのコードでは、SQL Serverのようにたくさん見えるので、私は、タグを変更しました。 –

+0

'DATE'列のデータ型は' DATETIME'ですか?なぜ 'GETDATE(DATE)'を使用しているのか理解できませんでした。この場合は 'SELECT MONTH(CONVERT(VARCHAR(8)、[DATE]、1))')が動作します。 – Arulkumar

+0

私のDATE列はこの1/1/2017のようです.... と私はphpmyadminからMySqlを使用しています –

答えて

2

の場合:

SELECT MONTH(`DATE`) 
FROM `adjtime` 
WHERE `EMPLOYEE` = 302 

月の名前を取得するには、これを使用しますDATEはvarcharにあります。

を使用して DATE形式に変換する必要がありますサンプルデータと

サンプルの実行:

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

+0

これはやった!!!!ありがとうございました!!!! :D –

+0

@VirgilCruzこれは良い質問をする方法について教えてください。ゴードンはSQL Serverを推測しました。ヤングはオーステンを推測しました。私はあなたの列が日付/日時データ型であると推測しました。私たちに推測させないでください。質問に関連するすべての詳細を含めてください。 –

0

あなたがDATE列を持っている場合は、SQL Serverの中で、あなたが行うことによって、数値月得ることができます:

select month(datecol) 

または

select datepart(month, datecol) 

をあなたの場合月の名前が必要な場合はdatename()

select datename(month, datecol) 
0

Oracle? SQLサーバー? MySQL?

Oracleの構文:

TO_CHAR('05/29/2017', 'MONTH') 
0

まあ、MySQLはmonthmonthname機能を持っています。あなたはofficial documentation.

でそれらについて読むことができますので、それはMySQLをだ場合、クエリは、おそらく次のようになります。

SELECT MONTHNAME(`DATE`) 
FROM `adjtime` 
WHERE `EMPLOYEE` = 302 
+0

クエリが機能しました。しかし、それはnullの結果を返しました..私の日付の形式は、2011年1月1日です。おそらく2017.1.1のようなその読み? –

+0

日付は表示形式で保存されません。とにかく、私はArulkumarがあなたに正しい答えを与えているのを見ます。 –

関連する問題