2010年12月20日月曜日

SQL Server 日毎、月毎の集計

datetime型のフィールドで集計しようとした時に、
YEAR,MONTH,DAY関数は用意されていますが、
"yyyy/mm/dd" や"yyyy/mm"を返す関数は用意されていないので、

/月毎/
SELECT
 YEAR(日付) AS 年,
 MONTH(日付) AS 月,
 COUNT(*) AS 計数
FROM TABLE
GROUP BY YEAR(日付), MONTH(日付) 

とか

/月毎/
SELECT
 CAST(YEAR(日付) AS VARCHAR) + '/' + CAST(MONTH(日付) AS VARCHAR) AS 年月,
 COUNT(*) AS 計数
FROM TABLE
GROUP BY CAST(YEAR(日付) AS VARCHAR) + '/' + CAST(MONTH(日付) AS VARCHAR)

とかしないといけません。
こんな時はCONVERT関数を使った方がスマートです。

/日毎/
SELECT
 CONVERT(VARCHAR, 日付, 111) AS 年月日,
 COUNT(*) AS 計数
FROM TABLE
GROUP BY CONVERT(VARCHAR, 日付, 111)

/月毎/
SELECT
 SUBSTRING(CONVERT(VARCHAR, 日付, 111),1,7) AS 年月,
 COUNT(*) AS 計数
FROM TABLE
GROUP BY SUBSTRING(CONVERT(VARCHAR, 日付, 111),1,7) AS 年月

参考
CAST および CONVERT
日付と時刻のデータ型および関数
SQL-Sqrverで月ごとにグルーピングして集計したい

ASP .NET State Service が停止してしまった

ご存知のとおり、ASP .NET のセッションの管理方法は

InProc
State Server
SQL Server

の3通りがあり、 InProcは「ワーカープロセスリサイクル」で
Sessionデータがぶっ飛んでしまうので、State Server を利用していました。

そして、先日Windows Updateが結構たまってしまっていたので
「ダウンロードだけでもしておいてアップデートに備えておこう」と
データをダウンロードしたところ、State Serviceが停止してしまいました。


State Serviceの設定がデフォルトで上記の通りなのですが、1回目、2回目の停止後は
サービスを再開してくれるのですが、その後のエラーではサービスを再開してくれません。

今回はWindows Updateをダウンロードしただけだったので、サービスが停止するなどとは思わずに
まる1日ほど気づかずに放置してしまいました。

2010年12月17日金曜日

Excelの日付に曜日を表示する

エクセルシート上「セルの書式設定」 または 作成したグラフ上「軸の書式設定」で

「yyyy"年"m"月"d"日("aaa")"」とすると「2010年12月17日(金)」


「yyyy"年"m"月"d"日("aaaa")"」とすると「2010年12月17日(金曜日)」

のように表示されます。


参考 Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について

2010年12月15日水曜日

WebフォームでEnterキーを打ってもPOSTしないようにするには

submitボタンを利用するとフォーム上でEnterキーを打つとデータをPOSTしてしまいます。

<input type="submit" value="送信">


inputタグのtype属性をsubmitからbuttonに変更し、onClickイベントでsubmitするように変更します。

<input type="button" value="送信" onClick="this.form.submit()">


現状確認できる範囲ではこれで上手くいきそうですが、嘘だったらすみません。

2010年12月9日木曜日

Amazon 経由してポイントの付くサイト

Amazonで購入するにあたって経由してポイントの付くサイトはないと以前の記事で書きました。


が、


ありました。


三井住友VISAカードを持っていれば「ポイントUPモール」を経由することでプレミアムポイントが付与されます。
詳細はこちら

自分が三井住友VISAカード持ちなのにすっかり見落としていました。

三井住友VISAカードをお持ちでAmazonで購入される場合は「ポイントUPモール」経由での購入をご検討されてはいかがでしょうか?

※2011/10/27加筆
コメントにいただいたように「セゾンカードをお持ちなら、永久不滅.comを経由」でポイントが得られるそうです。
他にもまだまだ方法があるかもしれませんね。

三井住友VISAギフトカードプレゼントキャンペーン