質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

1809閲覧

MySQL 西暦/月だけを取得する方法 PHPで整形予定

amaguri

総合スコア227

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/09/04 08:59

編集2017/09/04 09:01
postテーブルに id create_at

というカラムがあり

id create_at 1 2016-08-30 15:28:37 2 2017-06-10 14:28:37 3 2017-09-30 11:28:37 4 2017-09-30 12:28:37

というようなデータが格納されている場合

西暦/月が被らない
2016/08
2017/06
2017/09
のデータを形成したいのですが、この場合
どのようなSQLを発行すれば良いのでしょうか?

素直に

select create_at from post;

でcreate_atの全データを取得したのちに
phpにて
データを整形するのが思い浮かびますが

そもそものSQLにて
被らない
2017-09のような西暦/月の形で取得する方法があれば
知りたいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SQL

1create table tbl(id int,create_at datetime); 2insert into tbl values 3(1,'2016-08-30 15:28:37'), 4(2,'2017-06-10 14:28:37'), 5(3,'2017-09-30 11:28:37'), 6(4,'2017-09-30 12:28:37'); 7select distinct date_format(create_at,'%Y/%m') as ym from tbl;

投稿2017/09/04 09:12

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaguri

2017/09/04 09:14

回答ありがとうございます!
guest

0

今一つやりたいことが分からないのですが、こういうことでしょうか?

SQL

1SELECT DISTINCT DATE_FORMAT(create_at, '%Y/%m') FROM post;

投稿2017/09/04 09:11

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaguri

2017/09/04 09:14

回答ありがとうございます!
guest

0

ベストアンサー

日付を整形するのにはdate_format()等の関数があります。
同じデータを集約するにはgroup byを用います。※DISTINCTを使用する場合もありますが。

SQL

1select date_format(create_at,'%Y/%m') from post 2group by date_format(create_at,'%Y/%m');

投稿2017/09/04 09:09

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaguri

2017/09/04 09:14

回答ありがとうございます!
sazi

2017/09/04 16:12 編集

なんで、そんなに評価されるのか分からないのですけども。 単に、アゲってことですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問