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ギフトカードプレゼントキャンペーン

2010年12月7日火曜日

すごい動画 5つ

スポーツの凄技集


ゴルフ スーパーショット


メインイベントより観客を魅了した少女たち


世界の早業集


ミラクルシュート

2010年12月5日日曜日

Shuttle SH55J2 BIOS アップデート

※BIOSのアップデートはくれぐれも自己責任でお願いいたします。

現在自宅で稼動させているPCはShuttleのベアボーンSH55J2で、

CPU:Intel Core i5 660
OS:Windows7 x64

という構成なのですが、不定期にシャットダウンしてしまうというトラブルを抱えていました。

Shuttleのホームページを見たところ、新しいバージョンのBIOSがリリースされており、さらに以下のような記述がありました。

Support List / SH55J2

Remarks:If you want to use Intel I5-660 or I5-670 processor, Shuttle suggest you may update latest Bios, for improving system stable.

ということでここから最新のBIOSをダウンロードしました。(2010/12/5現在でバージョン106)

ファイルはzip形式なので適当な場所に解凍し、Win64フォルダの中のSH55JSHU.106.exeを実行します。
DOSプロンプトの様なウィンドウが現れ「実行するには何かキーを押してください」というようなメッセージが出るので、適当にEnterなどを押すと、非常に小さなウィンドウが現れます。
その小さなウィンドウ内で判別不可能なほど小さな文字で何事か実行結果が表示され、しばらくするとかろうじて「Press Any Key.....」と読み取れなくもない文字が表示されますので、適当にEnterなどを押します。
すると再起動され、無事実行終了。

とりあえず今のところは順調のようです。
これで解決してくれると良いのですが・・・。
しばらく様子見です。