私の日付の列から月だけを取得しようとしていますが、クエリを使用して取得できないようです。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
の場合:
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
これはやった!!!!ありがとうございました!!!! :D –
@VirgilCruzこれは良い質問をする方法について教えてください。ゴードンはSQL Serverを推測しました。ヤングはオーステンを推測しました。私はあなたの列が日付/日時データ型であると推測しました。私たちに推測させないでください。質問に関連するすべての詳細を含めてください。 –
あなたがDATE
列を持っている場合は、SQL Serverの中で、あなたが行うことによって、数値月得ることができます:
select month(datecol)
または
select datepart(month, datecol)
をあなたの場合月の名前が必要な場合はdatename()
:
select datename(month, datecol)
Oracle? SQLサーバー? MySQL?
Oracleの構文:
TO_CHAR('05/29/2017', 'MONTH')
まあ、MySQLはmonth
とmonthname
機能を持っています。あなたはofficial documentation.
でそれらについて読むことができますので、それはMySQLをだ場合、クエリは、おそらく次のようになります。
SELECT MONTHNAME(`DATE`)
FROM `adjtime`
WHERE `EMPLOYEE` = 302
クエリが機能しました。しかし、それはnullの結果を返しました..私の日付の形式は、2011年1月1日です。おそらく2017.1.1のようなその読み? –
日付は表示形式で保存されません。とにかく、私はArulkumarがあなたに正しい答えを与えているのを見ます。 –
あなたのコードでは、SQL Serverのようにたくさん見えるので、私は、タグを変更しました。 –
'DATE'列のデータ型は' DATETIME'ですか?なぜ 'GETDATE(DATE)'を使用しているのか理解できませんでした。この場合は 'SELECT MONTH(CONVERT(VARCHAR(8)、[DATE]、1))')が動作します。 – Arulkumar
私のDATE列はこの1/1/2017のようです.... と私はphpmyadminからMySqlを使用しています –