Windows Phone用アプリ「十二支から年齢」
2012年1月15日 コンピュータ 昨年12月10日に行われた Windows Phone ハッカソンに参加した。
AppHub のアカウントをタダでもらえるというので。
その時はグループでアプリを作成したが僕はリソース探し等でプログラミングはしなかった。
また、AppHub のアカウントをタダでくれる条件がアプリを作成してMarket Place に申請するというものだったが、サンプルのアプリを加工してダミーアプリ作って登録するように言われたのでそのとおりやってみた。
ただ、タダでアカウントもらったんだから、ダミーだけではなく、なんか作って MarketPlace に申請しておかないとなぁ。。。っってことがあり、また「Windows Phone Holiday Apps コンテスト」で「年末年始」を題材にしたアプリのコンテストの募集をしていたので 12/15 の香港へ行く日にかけてアプリ「EtoEto」を作成し、コンテストへの応募とあたらしいアプリの申請を行った。
そのときに 12/10 のハッカソンで登録申請したダミーアプリが審査におちていたことが判明。 SnapShot にデバッグ用の情報が表示されていたために却下された。
香港で Simロックフリーの Windows Phone機「NOKIA Lumia 710」を購入し、12/18 に日本に持ち帰った。もしかしたらそのときは国内では最初の「NOKIA Lumia 710」だったかもしれない。
12/20 の Windows Phone ハッカソンの当日会場で AppHub を見ていたら今度は Holiday Apps コンテストに応募したプログラムが MarketPlace の審査で却下されてた。理由は「メッセージボックス等が表示されているときに後ろの画面を操作できてはいけない」というルールに反していたからだった。・・・そんなルール、知らなかったよ。
で、12/20 の Windows Phone ハッカソンで開始時に、「申請前に最低 『MarketPlace TestKit』で確認するように」と言われた。「MarketPlace TestKit」? どっかで聞いたことがあるような気はするが、なにそれ?
とりあえず、アプリを一本なんとか作成した後に「MarketPlace TestKit」をググってしらべてみた。どこで手に入れるものかよくわからない~って探していたら
「Visual Studio 2010」の「プロジェクト」メニュー内にいつの間にか項目ができていることが判明。しらなかった・・・というより、知らないで応募したらそりゃ申請で却下されるわなと。
その時作ったのプログラムもその「MarketPlace TestKit」の手動テストの項目と照らし合わせて「却下」判定になったので申請は見合わせた。
年が明けて時間に余裕ができて申請が却下されたアプリ「EtoEto」を大きく見直し、またアプリ名が「Windows Phone Holiday Apps コンテスト」で賞を取ったアプリと名称がかぶっていたので名前を変えて申請した。今回はちゃんと「MarketPlace TestKit」でセルフテストをしてから申請を出した。
申請を通過したらそのまま公開するようにしていたらいつの間にか公開されていた。
これが「十二支から年齢」である。
http://www.windowsphone.com/ja-JP/apps/608d955c-30e2-47ba-b273-c094f724d729
アプリを公開したのは久しぶり。
ただし、公開されてから5日ほど経つようだがダウンロード数はまだ一桁である。
次は 12/20 のWPハッカソンで作ったプログラムをブラッシュアップして公開する予定。
AppHub のアカウントをタダでもらえるというので。
その時はグループでアプリを作成したが僕はリソース探し等でプログラミングはしなかった。
また、AppHub のアカウントをタダでくれる条件がアプリを作成してMarket Place に申請するというものだったが、サンプルのアプリを加工してダミーアプリ作って登録するように言われたのでそのとおりやってみた。
ただ、タダでアカウントもらったんだから、ダミーだけではなく、なんか作って MarketPlace に申請しておかないとなぁ。。。っってことがあり、また「Windows Phone Holiday Apps コンテスト」で「年末年始」を題材にしたアプリのコンテストの募集をしていたので 12/15 の香港へ行く日にかけてアプリ「EtoEto」を作成し、コンテストへの応募とあたらしいアプリの申請を行った。
そのときに 12/10 のハッカソンで登録申請したダミーアプリが審査におちていたことが判明。 SnapShot にデバッグ用の情報が表示されていたために却下された。
香港で Simロックフリーの Windows Phone機「NOKIA Lumia 710」を購入し、12/18 に日本に持ち帰った。もしかしたらそのときは国内では最初の「NOKIA Lumia 710」だったかもしれない。
12/20 の Windows Phone ハッカソンの当日会場で AppHub を見ていたら今度は Holiday Apps コンテストに応募したプログラムが MarketPlace の審査で却下されてた。理由は「メッセージボックス等が表示されているときに後ろの画面を操作できてはいけない」というルールに反していたからだった。・・・そんなルール、知らなかったよ。
で、12/20 の Windows Phone ハッカソンで開始時に、「申請前に最低 『MarketPlace TestKit』で確認するように」と言われた。「MarketPlace TestKit」? どっかで聞いたことがあるような気はするが、なにそれ?
とりあえず、アプリを一本なんとか作成した後に「MarketPlace TestKit」をググってしらべてみた。どこで手に入れるものかよくわからない~って探していたら
「Visual Studio 2010」の「プロジェクト」メニュー内にいつの間にか項目ができていることが判明。しらなかった・・・というより、知らないで応募したらそりゃ申請で却下されるわなと。
その時作ったのプログラムもその「MarketPlace TestKit」の手動テストの項目と照らし合わせて「却下」判定になったので申請は見合わせた。
年が明けて時間に余裕ができて申請が却下されたアプリ「EtoEto」を大きく見直し、またアプリ名が「Windows Phone Holiday Apps コンテスト」で賞を取ったアプリと名称がかぶっていたので名前を変えて申請した。今回はちゃんと「MarketPlace TestKit」でセルフテストをしてから申請を出した。
申請を通過したらそのまま公開するようにしていたらいつの間にか公開されていた。
これが「十二支から年齢」である。
http://www.windowsphone.com/ja-JP/apps/608d955c-30e2-47ba-b273-c094f724d729
アプリを公開したのは久しぶり。
ただし、公開されてから5日ほど経つようだがダウンロード数はまだ一桁である。
次は 12/20 のWPハッカソンで作ったプログラムをブラッシュアップして公開する予定。
SQL Server の Cast と Convert に関する考察
2011年10月28日 コンピュータアクセスログ見ていると、
http://10395.diarynote.jp/200408300855070000/
がトラップになって
での検索のアクセスがあった。
次のコードで実験。
(コピーする場合は下記から。
http://kazamai7610.wordpress.com/2011/10/27/cast-%e3%81%a8-convert-%e3%81%ae%e6%a4%9c%e8%a8%bc/
)
結果
つまり、Dafault制約で Cast を使ったにもかかわらず、
その制約を確認すると Convert に書き換わっているわけです。
このことは SQL Server Management Studio (SSMS) からも確認できます。
というわけで、内部的には Cast は Convert に置き換えられるようです。
したがって、
というのが僕の意見です。
・・・もちろん、引数の数からして違うので convert の方が多彩な動きがあるのですが。
(
Convert の引数による動作の違いは
http://msdn.microsoft.com/ja-jp/library/ms187928.aspx
を参照。)
---
2013年4月12日追記
所謂「糖衣構文(Syntactic sugar)」ってやつですね。
http://ja.wikipedia.org/wiki/%E7%B3%96%E8%A1%A3%E6%A7%8B%E6%96%87
リファレンスマニュアルで同一項目に書いてあるのも同じものだからでしょう。
---
2013年12月20日追記
歴史的経緯を補足するならば、もともとは convert だけだったが
ANSI SQL に準拠するためにあとから cast が追加されたってことです。
---
2015年2月8日追記
速さを気にしての検索を見受けられるが、Where句でキャスト(型変換の意。暗黙、明示的な Cast,Convertの利用すべて)するとインデックスとかが利かなくなるのでそもそもキャスト自体を避けるべき。
日時絡みなら
http://10395.diarynote.jp/201008270101429723
の余談が参考になるかも。
http://10395.diarynote.jp/200408300855070000/
がトラップになって
「sql castとconvertの違い」
での検索のアクセスがあった。
次のコードで実験。
CREATE TABLE test2 (
a date
CONSTRAINT DF_test2__a DEFAULT CAST(’10-1-10’ as date)
, b float
CONSTRAINT DF_test2__b DEFAULT CAST(2 as float)
)
SELECT
C.name
, D.definition as default_constraint
FROM
sys.default_constraints D
INNER JOIN sys.columns C
ON D.object_id=C.default_object_id
WHERE C.object_id = object_id(’test2’)
(コピーする場合は下記から。
http://kazamai7610.wordpress.com/2011/10/27/cast-%e3%81%a8-convert-%e3%81%ae%e6%a4%9c%e8%a8%bc/
)
結果
name | default_constraint
a | (CONVERT([date],’10-1-10’,0))
b | (CONVERT([float],(2),0))
つまり、Dafault制約で Cast を使ったにもかかわらず、
その制約を確認すると Convert に書き換わっているわけです。
このことは SQL Server Management Studio (SSMS) からも確認できます。
というわけで、内部的には Cast は Convert に置き換えられるようです。
したがって、
Cast と Convert は気にするような違いは無い
というのが僕の意見です。
・・・もちろん、引数の数からして違うので convert の方が多彩な動きがあるのですが。
(
Convert の引数による動作の違いは
http://msdn.microsoft.com/ja-jp/library/ms187928.aspx
を参照。)
---
2013年4月12日追記
所謂「糖衣構文(Syntactic sugar)」ってやつですね。
http://ja.wikipedia.org/wiki/%E7%B3%96%E8%A1%A3%E6%A7%8B%E6%96%87
リファレンスマニュアルで同一項目に書いてあるのも同じものだからでしょう。
---
2013年12月20日追記
歴史的経緯を補足するならば、もともとは convert だけだったが
ANSI SQL に準拠するためにあとから cast が追加されたってことです。
---
2015年2月8日追記
速さを気にしての検索を見受けられるが、Where句でキャスト(型変換の意。暗黙、明示的な Cast,Convertの利用すべて)するとインデックスとかが利かなくなるのでそもそもキャスト自体を避けるべき。
日時絡みなら
http://10395.diarynote.jp/201008270101429723
の余談が参考になるかも。
続々・正しい今日の日付を返す SQL
2011年9月1日 笑いやぁ。今日が何日か知っているかい?
2010年8月397日
なんだよ。
9月にならないうちに宿題をすまそうぜっ!
正しい今日の日付を返す SQL: http://10395.diarynote.jp/201009010059142568/
続・正しい今日の日付を返す SQL: http://10395.diarynote.jp/201101011540512251/
2010年8月397日
なんだよ。
9月にならないうちに宿題をすまそうぜっ!
正しい今日の日付を返す SQL: http://10395.diarynote.jp/201009010059142568/
続・正しい今日の日付を返す SQL: http://10395.diarynote.jp/201101011540512251/
LB-L201BR のための ACアダプター調達
2011年8月31日 コンピュータLB-L201BR を持ち歩くときに ACアダプターも一緒に持ち歩いていた。比較的軽量なものなのだが、会社に持って行ってうっかり持って帰るのを忘れたり、家から会社へ持っていくのを忘れたりしたら困る。そういうわけで ACアダプターの調達を検討。
まず、マウスコンピューターのページへ。ACアダプター、参考価格が「10290円」と書いてある。この時点で純正あきらめた。
LB-L201BRのACアダプターは出力 19.5V 3.42A 65W でジャックは 内径2.5mmである。同じものだったら使えるはずだ。
さて、秋葉原で物色。秋月電子に行ってみた。
出力が合致するものがあったが、ジャックの内径が 2.1mm のものしかない。残念。
あきらめて他の店や中古も物色したが適切なものは見つからなかった。
その後のある日、秋月電子のWEBのショップを見ていると、「2.1mm->2.5mm変換アダプタ」なるものがあることが判明した。
なるほど、先の ACアダプタに変換アダプタをつければいいのか。
そういうわけで再度秋月電子へ。
店の中を探したが、該当の変換アダプタはみつからず、レジの店員さんに聞いたらそのレジのところにあった。
そういうわけで ACアダプタ 1700円と変換アダプタ60円を購入した。
これで会社に行くときには ACアダプタを持ち歩く必要はなくなった。
めでたし。
・・・・しばらくしてふと「I型をL型に変換するアダプタは無いのかな?」と思った。妙に出っ張るので。
ググってみると物はあった。マルツーパーツショップにあり、店舗が秋葉原にもある。
そういうわけで秋葉原に行って物をゲット。90円。
とりあえず、問題なく使えています。
---
2.1mm->2.5mm の変換アダプタ無くした><
http://10395.diarynote.jp/201201310654212993/
再度調達!!
http://10395.diarynote.jp/201202041840265290/
まず、マウスコンピューターのページへ。ACアダプター、参考価格が「10290円」と書いてある。この時点で純正あきらめた。
LB-L201BRのACアダプターは出力 19.5V 3.42A 65W でジャックは 内径2.5mmである。同じものだったら使えるはずだ。
さて、秋葉原で物色。秋月電子に行ってみた。
出力が合致するものがあったが、ジャックの内径が 2.1mm のものしかない。残念。
あきらめて他の店や中古も物色したが適切なものは見つからなかった。
その後のある日、秋月電子のWEBのショップを見ていると、「2.1mm->2.5mm変換アダプタ」なるものがあることが判明した。
なるほど、先の ACアダプタに変換アダプタをつければいいのか。
そういうわけで再度秋月電子へ。
店の中を探したが、該当の変換アダプタはみつからず、レジの店員さんに聞いたらそのレジのところにあった。
そういうわけで ACアダプタ 1700円と変換アダプタ60円を購入した。
これで会社に行くときには ACアダプタを持ち歩く必要はなくなった。
めでたし。
・・・・しばらくしてふと「I型をL型に変換するアダプタは無いのかな?」と思った。妙に出っ張るので。
ググってみると物はあった。マルツーパーツショップにあり、店舗が秋葉原にもある。
そういうわけで秋葉原に行って物をゲット。90円。
とりあえず、問題なく使えています。
---
2.1mm->2.5mm の変換アダプタ無くした><
http://10395.diarynote.jp/201201310654212993/
再度調達!!
http://10395.diarynote.jp/201202041840265290/
土曜日に腰を痛めました。
トイレで洋式便所から立ち上がり、少しして違和感。
翌日にはすごく痛くなり、医者に行きました。
診断結果は急性腰痛。いわゆるぎっくり腰です。
移動の時にはコルセットを着けています。
トイレで洋式便所から立ち上がり、少しして違和感。
翌日にはすごく痛くなり、医者に行きました。
診断結果は急性腰痛。いわゆるぎっくり腰です。
移動の時にはコルセットを着けています。
きっかけは UQ WIMax ルーターを紛失したこと。
仕方が無いのでヨドバシに UQ WIMax のルーターを買いに行った。
すると、WiMaxルーターといっしょにパソコンを買うと3000円割り引かれるというキャンペーンをしていた。
で、店頭で散々悩んだが決められず。
一休みに喫茶店に入り、マウスコンピューターでの販売価格を調べてみた。
すると、なんと、WiMaxルーター込で 1万円割引のキャンペーンをやっていた。
そこで 「LB-L201 BR」 の 「OS無し」を購入した。
送料・割引込みで 11.3インチ Corei3 4GBメモリで 35,780円。悪くはない。
で、6/25 に申し込んだが、その後、WiMaxの申し込み手続きが終わらないと購入手続きが進まなくってパソコンを入手できたのは 7/7 だった。
7/8 早朝にかけて Windows7 Ultimate Edition (64bit)をインストールした。
さて、このパソコン、起動すると intel のロゴがポツーンと出る。
しかし、僕はBIOS起動画面の方が好きなので、BIOS の設定を変えて「Quiet Boot」を disableにした。
すると、American Megatrands Inc. の BIOS の起動画面が表示される。
・・・・? Evaluation Copy? ライセンス的に大丈夫か?
一応マウスコンピューターのサポートに問い合わせたが、「弊社独自の BIOS なので問題ありません」との回答。いや、独自って言っているけどしっかり AMI のロゴが出ているのですけど。まぁ、問題を理解していたらこんな回答しないわな・・・ってわけでそれ以上追及はしていません。
さて、この 「Evaluation Copy」 のBIOS はマウスコンピューターが再配布していいものだったのだろうか?
なお、Quiet boot を disable にしている場合、再起動を行うと
BIOS のロゴを表示した時点で停止します。Quiet Boot を enable にすると発生しませんでした。
入手できたのが 7/7 だったので機械名は「TANABATA」です。
仕方が無いのでヨドバシに UQ WIMax のルーターを買いに行った。
すると、WiMaxルーターといっしょにパソコンを買うと3000円割り引かれるというキャンペーンをしていた。
で、店頭で散々悩んだが決められず。
一休みに喫茶店に入り、マウスコンピューターでの販売価格を調べてみた。
すると、なんと、WiMaxルーター込で 1万円割引のキャンペーンをやっていた。
そこで 「LB-L201 BR」 の 「OS無し」を購入した。
送料・割引込みで 11.3インチ Corei3 4GBメモリで 35,780円。悪くはない。
で、6/25 に申し込んだが、その後、WiMaxの申し込み手続きが終わらないと購入手続きが進まなくってパソコンを入手できたのは 7/7 だった。
7/8 早朝にかけて Windows7 Ultimate Edition (64bit)をインストールした。
さて、このパソコン、起動すると intel のロゴがポツーンと出る。
しかし、僕はBIOS起動画面の方が好きなので、BIOS の設定を変えて「Quiet Boot」を disableにした。
すると、American Megatrands Inc. の BIOS の起動画面が表示される。
・・・・? Evaluation Copy? ライセンス的に大丈夫か?
一応マウスコンピューターのサポートに問い合わせたが、「弊社独自の BIOS なので問題ありません」との回答。いや、独自って言っているけどしっかり AMI のロゴが出ているのですけど。まぁ、問題を理解していたらこんな回答しないわな・・・ってわけでそれ以上追及はしていません。
さて、この 「Evaluation Copy」 のBIOS はマウスコンピューターが再配布していいものだったのだろうか?
なお、Quiet boot を disable にしている場合、再起動を行うと
BIOS のロゴを表示した時点で停止します。Quiet Boot を enable にすると発生しませんでした。
入手できたのが 7/7 だったので機械名は「TANABATA」です。
Float を主キーにしてはいけません。
2011年2月8日 コンピュータ「今の時代、基本的に、SQL Serverとかで float は使うべきではない。」(http://10395.diarynote.jp/200909072116364066/ )を書いた直後くらいに
「SQLServer Float Primary Key」での検索でアクセスがあった。
トラぶりそうだし面白そうだとおもいつつ、1年半ほど放置していたが、実験してみることにした。
SQL Server 2008 で試しました。
「SQLServer Float Primary Key」での検索でアクセスがあった。
トラぶりそうだし面白そうだとおもいつつ、1年半ほど放置していたが、実験してみることにした。
SQL Server 2008 で試しました。
CREATE TABLE FloatKeyTable(
FloatKey FLOAT CONSTRAINT PK_FloatKeyTable PRIMARY KEY
, Description NVARCHAR(50)
)
コマンドは正常に完了しました。
INSERT INTO FloatKeyTable(
FloatKey
, Description)
VALUES(8,’8’)
(1 行処理されました)
INSERT INTO FloatKeyTable(
FloatKey
, Description)
VALUES(8,’8’)
メッセージ 2627、レベル 14、状態 1、行 1
制約 ’PK_FloatKeyTable’ の PRIMARY KEY 違反。オブジェクト ’dbo.FloatKeyTable’ には重複したキーを挿入できません。
ステートメントは終了されました。
INSERT INTO FloatKeyTable(
FloatKey
, Description)
VALUES(
(CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10
, ’(CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10’)
(1 行処理されました)
INSERT INTO FloatKeyTable(
FloatKey
, Description)
VALUES(
(CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10
, ’(CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10’)
メッセージ 2627、レベル 14、状態 1、行 1
制約 ’PK_FloatKeyTable’ の PRIMARY KEY 違反。オブジェクト ’dbo.FloatKeyTable’ には重複したキーを挿入できません。
ステートメントは終了されました。
SELECT * FROM FloatKeyTable
FloatKey Description
---------------------- --------------------------------------------------
8 (CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10
8 8
(2 行処理されました)
SELECT * FROM FloatKeyTable
WHERE
FloatKey = 8
FloatKey Description
---------------------- --------------------------------------------------
8 8
(1 行処理されました)
SELECT * FROM FloatKeyTable
WHERE
FloatKey = (CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10
FloatKey Description
---------------------- --------------------------------------------------
8 (CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10
(1 行処理されました)
DELETE FROM FloatKeyTable WHERE FloatKey = 8
(1 行処理されました)
SELECT * FROM FloatKeyTable
FloatKey Description
---------------------- --------------------------------------------------
8 (CAST(0.1 AS FLOAT) + CAST(0.7 AS FLOAT)) * 10
(1 行処理されました)
「『12:30 am』は何時か」について語ってみる
2011年2月6日 日常 コメント (2) 「『12:00:00 AM』って何時?」(http://10395.diarynote.jp/200712202104520000/)がトラップになって
「12:30 am 何時」で検索してきた人がいた。で、リンク元の検索をたどって驚いた。
「12:30 am は24時制の1230(昼間)である」という説明が上位に来ている。・・・そりゃまずいだろう。
その説明を鵜呑みにして勘違いしてトラぶったら大変だ。
つうわけで上記の検索が比較的上位にきている縁で説明を書いてみる。
ここでは敢えて「正しい」とは記述しない。
「正しい」のが別だとしても普通の解釈は上記の通りだから。
まず、
「午前 12:00」については法律等から「昼」と考えられる。
http://jjy.nict.go.jp/QandA/12am-or-0pm-J.html
http://www.nao.ac.jp/QA/faq/a0401.html
しかしながら、これはあくまで日本の「午前/午後」についてのものであり、
日本が「午前/午後」を導入するより前から存在していた「am/pm」に対してまで規定することはしていないし、規定はできない。
(たとえ、URLに am pm が含まれていてもw)
デジタル時計で「am/pm」の表示はあっても「午前/午後」の表示が少ないのはこの違いのためだろう。
さて「12:30 am」が表す時刻を解釈していく。
である。これに対して後付で数字による表現をつけ、
デジタル時計も面倒だがこれに合うようにわざわざしているのである。
したがって、
となる。
「12:00 am」は同じような解釈ができないが
「『12:01 am』『12:00:01 am』は真夜中なので『12:00 am』も真夜中」ぐらいの解釈だと思われる。
(実は「12:30 am」ほど揺らぎの無いの解釈ではないようである。
(Wikipedia:参照
midnight http://en.wikipedia.org/wiki/Midnight
12-hour clock http://en.wikipedia.org/wiki/12-hour_clock)
僕の説明は(世界的な)標準的な解釈に対する「勝手な説明」にすぎない。
何も知らない人が「(世界的な)標準とは違う解釈の説明」を信じて
不幸なことにならないようには希望する。
--
平成23年2月6日 20時25分
デジタル時計での「12:00 am」の勝手説明の記述を削除し、
代わりに English の WIkipedia の mignight へのリンクを追加した。
--
平成23年2月18日
『12:00:01 am』を追記
--
平成24年2月16日
リンク等修正
文言変更等
「12:30 am 何時」で検索してきた人がいた。で、リンク元の検索をたどって驚いた。
「12:30 am は24時制の1230(昼間)である」という説明が上位に来ている。・・・そりゃまずいだろう。
その説明を鵜呑みにして勘違いしてトラぶったら大変だ。
つうわけで上記の検索が比較的上位にきている縁で説明を書いてみる。
世界の標準的な解釈では
「12:00 am」は 24時制の 0000(夜中)の時刻を表す
「12:30 am」は 24時制の 0030(夜中)の時刻を表す
ここでは敢えて「正しい」とは記述しない。
「正しい」のが別だとしても普通の解釈は上記の通りだから。
まず、
「午前 12:00」と「12:00 am」は異なるものである。
したがって 「am/pm」と「午前/午後」も異なるものである。
「午前 12:00」については法律等から「昼」と考えられる。
http://jjy.nict.go.jp/QandA/12am-or-0pm-J.html
http://www.nao.ac.jp/QA/faq/a0401.html
しかしながら、これはあくまで日本の「午前/午後」についてのものであり、
日本が「午前/午後」を導入するより前から存在していた「am/pm」に対してまで規定することはしていないし、規定はできない。
(たとえ、URLに am pm が含まれていてもw)
デジタル時計で「am/pm」の表示はあっても「午前/午後」の表示が少ないのはこの違いのためだろう。
さて「12:30 am」が表す時刻を解釈していく。
0 なんて時刻はアナログ時計にはない
アナログ時計に基づくと
1から 2の前まで = 1時からxx分すぎ、あるいは1時丁度
2から 3の前まで = 2時からxx分すぎ、あるいは2時丁度
・・・
11から 12の前まで = 11時からxx分すぎ、あるいは11時丁度
そして
12から 1の前まで = 12時からxx分すぎ、あるいは12時丁度
である。
である。これに対して後付で数字による表現をつけ、
デジタル時計も面倒だがこれに合うようにわざわざしているのである。
したがって、
「12:30」は 12 と 1 の間の時刻を指す。
am は24時制 00:00 と 12:00 の間(両端の話はとりあえず置いておいて)である。
したがって、「12:30 am」は24時制の 0030 を指す。
となる。
「12:00 am」は同じような解釈ができないが
「『12:01 am』『12:00:01 am』は真夜中なので『12:00 am』も真夜中」ぐらいの解釈だと思われる。
(実は「12:30 am」ほど揺らぎの無いの解釈ではないようである。
(Wikipedia:参照
midnight http://en.wikipedia.org/wiki/Midnight
12-hour clock http://en.wikipedia.org/wiki/12-hour_clock)
僕の説明は(世界的な)標準的な解釈に対する「勝手な説明」にすぎない。
何も知らない人が「(世界的な)標準とは違う解釈の説明」を信じて
不幸なことにならないようには希望する。
--
平成23年2月6日 20時25分
デジタル時計での「12:00 am」の勝手説明の記述を削除し、
代わりに English の WIkipedia の mignight へのリンクを追加した。
--
平成23年2月18日
『12:00:01 am』を追記
--
平成24年2月16日
リンク等修正
文言変更等
正しい今日の日付を返す SQL
2010年9月1日 笑い正しい今日の日付を返す SQL (SQL Server 2008用)
そう、永久に9月は来ないし締め切りも来ないのだ。ははははは。。。。
コピー用:
http://kazamai7610.wordpress.com/2010/08/31/%e6%ad%a3%e3%81%97%e3%81%84%e4%bb%8a%e6%97%a5%e3%81%ae%e6%97%a5%e4%bb%98%e3%82%92%e8%bf%94%e3%81%99-sql-joke/
DECLARE @TODAY AS DATE = GETDATE()
SELECT
CASE
WHEN @TODAY < CAST(’2010/9/1’ AS DATE)
THEN CAST(YEAR(@TODAY) AS NVARCHAR(4)) + ’年’ + CAST(MONTH(@TODAY) AS NVARCHAR(2)) + ’月’ + CAST(DAY(@TODAY) AS NVARCHAR(2)) + ’日’
ELSE ’2010年8月’ + CAST(DATEDIFF(day,CAST(’2010/7/31’ AS DATE),@TODAY) AS NVARCHAR(4)) + ’日’
END
そう、永久に9月は来ないし締め切りも来ないのだ。ははははは。。。。
コピー用:
http://kazamai7610.wordpress.com/2010/08/31/%e6%ad%a3%e3%81%97%e3%81%84%e4%bb%8a%e6%97%a5%e3%81%ae%e6%97%a5%e4%bb%98%e3%82%92%e8%bf%94%e3%81%99-sql-joke/
新 SQL Server で時間を切り捨てる
2010年8月27日 コンピュータ コメント (2)今、横浜では 「Microsoft Tech Ed 2010 Japan」 が行われています。
最下層の屑技術者たる僕はそういうのにもいけず、
絶対に不可能な日程の仕事で、
欝が入ってますます効率が落ちている状態です。
そんなわけで逃避行動。
「SQL Server で時間を切り捨てる。」http://10395.diarynote.jp/200606080926140000/
はアクセスが多いです。
現時点で「sqlserver trunc 日付」でググるとトップに来るし。
まぁ、ほとんどの日本語のページが
として
という方法を示しているというある意味憂うべき状態だからなぁ。
・・・とはつつ、SQL Server のDatetime型を float として利用するのも問題が無いとはいえないんだけど。内部の実装に依存していることだから。
もちろん、SQL Server 2008 での基本且つ最良の方法である、
というのは結構あるが。
====================================
余談(本題はその後)
僕はあたりまえだと思うのだが
「あたりまえ」過ぎるのか、
「どんな場面でも通用する万能のルールではない」のか
あんまし SQL 作るときの注意点として挙げられていないような気がすることとして、
がある。
(2010年9月8日:「日付型」を「日時型」に訂正。本質的には日付型も同じ話だが下記の例は日時型なので。)
なので、
条件式に
とかせずに
とする。(もちろん、’2010/8/28’にすればいいのだが。)
は論外。ダメ!絶対!! http://10395.diarynote.jp/201004261843122549/
=========================================================
さて、本題。
「SQLServer Trunc」あたりで日本語以外を含めてググると
「How to truncate a datetime in SQL Server」
http://stackoverflow.com/questions/923295/how-to-truncate-a-datetime-in-sql-server
なるページがひっかかる。
このページの「The fast way:」(注参照)は「SQL Server で時間を切り捨てる。」http://10395.diarynote.jp/200606080926140000/ と同じ方法だが、
「The correct way:」は僕の知らなかった方法で、且つ「文字列にして切り取り」とも異なる方法であり、日本語のページでは見かけたことが無い方法だった。
を実行すると
となる。
もっとも、この方法、整数を datetime型に暗黙にキャストしているので、float にキャストしているのと大差ないともいえる。
同じサイトで別のページを探すとこんなのがひっかかった。
「Best approach to remove time part of datetime in SQL Server」
http://stackoverflow.com/questions/1177449/best-approach-to-remove-time-part-of-datetime-in-sql-server
似てはいるが、引数の順序が違う。
を実行すると
これも、0 に対する datetime 型への暗黙のCast に依存している。
で
暗黙のキャストを嫌って変えるとたとえばこうなるか。
SQL Server 2008 では date型にキャストすればいいので、
こんなことをする必要はないが、
この方法のおもしろいところは
日単位のみではなく、
年月、時、分、秒 でも使えるところである。
(http://stackoverflow.com/questions/85373/floor-a-date-in-sql-server )
特に年月に関しては有用だと思われる。
切り捨てなので、四捨五入(?)は半分引いて切り捨てて1足せばいいかな。
半分足して切り捨てればいい。
ここのサイトは勝手に全角化されたりするので、コードのサンプルは以下からコピーしてください。(2011年2月3日リンク修正)
http://kazamai7610.wordpress.com/2010/08/26/%e3%80%8c%e6%96%b0%e3%80%80sql-server-%e3%81%a7%e6%99%82%e9%96%93%e3%82%92%e5%88%87%e3%82%8a%e6%8d%a8%e3%81%a6%e3%82%8b%e3%80%8d%e3%81%ae%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%82%b3%e3%83%bc%e3%83%89/
2011年2月3日追記:
注:
「The fast way:」とあるが、コメントや他のページの情報では「The Correct way:」の方が速いようである。浮動小数点演算よりも整数演算のみの方が速いということらしい。
最下層の屑技術者たる僕はそういうのにもいけず、
絶対に不可能な日程の仕事で、
欝が入ってますます効率が落ちている状態です。
そんなわけで逃避行動。
「SQL Server で時間を切り捨てる。」http://10395.diarynote.jp/200606080926140000/
はアクセスが多いです。
現時点で「sqlserver trunc 日付」でググるとトップに来るし。
まぁ、ほとんどの日本語のページが
「日時から日付だけを取り出す」方法
として
「文字列にして切り取る」
という方法を示しているというある意味憂うべき状態だからなぁ。
・・・とはつつ、SQL Server のDatetime型を float として利用するのも問題が無いとはいえないんだけど。内部の実装に依存していることだから。
もちろん、SQL Server 2008 での基本且つ最良の方法である、
「SQL Server 2008 では date型へキャストする」 SELECT CAST(GETDATE() AS DATE)
というのは結構あるが。
====================================
余談(本題はその後)
僕はあたりまえだと思うのだが
「あたりまえ」過ぎるのか、
「どんな場面でも通用する万能のルールではない」のか
あんまし SQL 作るときの注意点として挙げられていないような気がすることとして、
SQL の条件式(WHERE句)で
・インデックスを活かすために列に対して演算やキャスト(暗黙のキャストも含む)は避けておく。
・文字列の比較は数値の比較に比べて遅い。日時型は数値の類型と考えられるので
文字列の比較は日時型に比べて遅い。さらに文字列のparse は遅いので文字列を日時にキャストする処理は遅い。
がある。
(2010年9月8日:「日付型」を「日時型」に訂正。本質的には日付型も同じ話だが下記の例は日時型なので。)
なので、
条件式に
SELECT * from test1 WHERE CONVERT(nvarchar(10),dt1,111) = ’2010/08/27’
SELECT * from test1 WHERE CAST(floor(CAST(dt1 AS FLOAT)) AS DATETIME) = CAST(’2010/8/27’ AS DATETIME)
DECLARE @dt AS DATETIME
SET @dt = CAST(’2010/8/27’ AS DATETIME)
SELECT * from test1 WHERE (dt1 >= @dt) AND (dateadd(day,-1,dt1) < @dt)
とかせずに
SELECT * from test1 WHERE(dt1 >= CAST(’2010/8/27’ AS DATETIME)) AND (dt1 < dateadd(day,1,CAST(’2010/8/27’ AS DATETIME)))
とする。(もちろん、’2010/8/28’にすればいいのだが。)
SELECT * from test1 WHERE dt1 between CAST(’2010/8/27’ AS DATETIME) AND CAST(’2010/8/27 23:59:59.999’ AS DATETIME
は論外。ダメ!絶対!! http://10395.diarynote.jp/201004261843122549/
=========================================================
さて、本題。
「SQLServer Trunc」あたりで日本語以外を含めてググると
「How to truncate a datetime in SQL Server」
http://stackoverflow.com/questions/923295/how-to-truncate-a-datetime-in-sql-server
なるページがひっかかる。
このページの「The fast way:」(注参照)は「SQL Server で時間を切り捨てる。」http://10395.diarynote.jp/200606080926140000/ と同じ方法だが、
「The correct way:」は僕の知らなかった方法で、且つ「文字列にして切り取り」とも異なる方法であり、日本語のページでは見かけたことが無い方法だった。
SELECT dateadd(DAY,0,DATEDIFF(DAY,0,getdate()))
を実行すると
-----------------------
2010-08-27 00:00:00.000
(1 行処理されました)
となる。
もっとも、この方法、整数を datetime型に暗黙にキャストしているので、float にキャストしているのと大差ないともいえる。
同じサイトで別のページを探すとこんなのがひっかかった。
「Best approach to remove time part of datetime in SQL Server」
http://stackoverflow.com/questions/1177449/best-approach-to-remove-time-part-of-datetime-in-sql-server
似てはいるが、引数の順序が違う。
SELECT dateadd(DAY,DATEDIFF(DAY,0,getdate()),0)
を実行すると
-----------------------
2010-08-27 00:00:00.000
(1 行処理されました)
これも、0 に対する datetime 型への暗黙のCast に依存している。
SELECT CAST(0 as datetime)
で
-----------------------
1900-01-01 00:00:00.000
暗黙のキャストを嫌って変えるとたとえばこうなるか。
DECLARE @dtBase as datetime
SET @dtBase = CAST(’2010/1/1’ as datetime)
SELECT dateadd(DAY,DATEDIFF(DAY,@dtBase,getdate()),@dtBase)
SQL Server 2008 では date型にキャストすればいいので、
こんなことをする必要はないが、
この方法のおもしろいところは
日単位のみではなく、
年月、時、分、秒 でも使えるところである。
(http://stackoverflow.com/questions/85373/floor-a-date-in-sql-server )
DECLARE @dtBase as datetime
SET @dtBase = CAST(’2010/1/1’ as datetime)
SELECT ’YEAR:’,dateadd(YEAR,DATEDIFF(YEAR,@dtBase,getdate()),@dtBase)
UNION ALL SELECT ’MONTH:’,dateadd(MONTH,DATEDIFF(MONTH,@dtBase,getdate()),@dtBase)
UNION ALL SELECT ’DAY:’,dateadd(DAY,DATEDIFF(DAY,@dtBase,getdate()),@dtBase)
UNION ALL SELECT ’HOUR:’,dateadd(HOUR,DATEDIFF(HOUR,@dtBase,getdate()),@dtBase)
UNION ALL SELECT ’MINUTE:’,dateadd(MINUTE,DATEDIFF(MINUTE,@dtBase,getdate()),@dtBase)
UNION ALL SELECT ’SECOND:’,dateadd(SECOND,DATEDIFF(SECOND,@dtBase,getdate()),@dtBase)
UNION ALL SELECT ’:’,GETDATE()
------- -----------------------
YEAR: 2010-01-01 00:00:00.000
MONTH: 2010-08-01 00:00:00.000
DAY: 2010-08-27 00:00:00.000
HOUR: 2010-08-27 08:00:00.000
MINUTE: 2010-08-27 08:32:00.000
SECOND: 2010-08-27 08:32:23.000
: 2010-08-27 08:32:23.843
特に年月に関しては有用だと思われる。
切り捨てなので、四捨五入(?)は
半分足して切り捨てればいい。
DECLARE @dtBase as datetime
SET @dtBase = CAST(’2010/1/1’ as datetime)
DECLARE @dt1 datetime
DECLARE @dt2 datetime
SET @dt1= CAST(’2010/8/27 08:16:29’ as datetime)
SET @dt2= CAST(’2010/8/27 08:16:30’ as datetime)
SELECT DATEADD(MINUTE,DATEDIFF(MINUTE,@dtBase,DATEADD(SECOND,30,@dt1)),@dtBase)
SELECT DATEADD(MINUTE,DATEDIFF(MINUTE,@dtBase,DATEADD(SECOND,30,@dt2)),@dtBase)
ここのサイトは勝手に全角化されたりするので、コードのサンプルは以下からコピーしてください。(2011年2月3日リンク修正)
http://kazamai7610.wordpress.com/2010/08/26/%e3%80%8c%e6%96%b0%e3%80%80sql-server-%e3%81%a7%e6%99%82%e9%96%93%e3%82%92%e5%88%87%e3%82%8a%e6%8d%a8%e3%81%a6%e3%82%8b%e3%80%8d%e3%81%ae%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%82%b3%e3%83%bc%e3%83%89/
2011年2月3日追記:
注:
「The fast way:」とあるが、コメントや他のページの情報では「The Correct way:」の方が速いようである。浮動小数点演算よりも整数演算のみの方が速いということらしい。
「休日分散化」反対!
2010年8月17日 コンピュータ今年は今までほど「サマータイム導入」の話を聞かない気がする。(http://10395.diarynote.jp/200405260620500000)
どっかテストをやってたところもやめたし、韓国も導入を見送りにした。
時計の針をを動かさずにやるのだったら反対しないけど。
(中国の、「国土全体で単一の基準時間」ってのもいい考えだとおもうし。)
でも、代わりに厄介なのが登場。
「休日分散化法案」( http://www.mlit.go.jp/kankocho/iinkai/suishinhonbu/pdf/kyuka_wt_02_05.pdf )
まぁ、「サマータイム」ほど強く反対するわけではないけど。
単に「嫌だ」ってレベルです。
その祝日の経緯を無視して動かすのはどうかと。
実験のため試験的に休日をふやしてみるってのならいいかも。
全国的に「南関東基準になる(南関東以外は休めない)」となるとおもうけどなぁ。。。
・サマータイム 機能面で国家的危機
・休日分散化 日本の文化的危機
ってところか。
どっかテストをやってたところもやめたし、韓国も導入を見送りにした。
時計の針をを動かさずにやるのだったら反対しないけど。
(中国の、「国土全体で単一の基準時間」ってのもいい考えだとおもうし。)
でも、代わりに厄介なのが登場。
「休日分散化法案」( http://www.mlit.go.jp/kankocho/iinkai/suishinhonbu/pdf/kyuka_wt_02_05.pdf )
まぁ、「サマータイム」ほど強く反対するわけではないけど。
単に「嫌だ」ってレベルです。
その祝日の経緯を無視して動かすのはどうかと。
実験のため試験的に休日をふやしてみるってのならいいかも。
全国的に「南関東基準になる(南関東以外は休めない)」となるとおもうけどなぁ。。。
・サマータイム 機能面で国家的危機
・休日分散化 日本の文化的危機
ってところか。
ここの日記、コンピュータのコードとか書きにくいので
コード書き用に別荘作りました。
http://kazamai-naruto.spaces.live.com/
ただ、これアクセスログが見れないんでどっかいい場所がないか探り中。
【xyzzy で階乗を求める】
http://kazamai-naruto.spaces.live.com/blog/cns!17D3E5D8390D408!236.entry
【「子どもが二人居て、少なくとも一人は火曜日生まれの男の子の場合に、もう一人も男の子である確率」を求める SQL】
http://kazamai-naruto.spaces.live.com/blog/cns!17D3E5D8390D408!246.entry
【.NET Framework での「クラスとメソッドの名前を使ってのメソッドの実行」】
http://kazamai-naruto.spaces.live.com/blog/cns!17D3E5D8390D408!248.entry
あと、ついでにつぶやいてます。
http://twitter.com/KAZAMAI_NaruTo
コード書き用に別荘作りました。
http://kazamai-naruto.spaces.live.com/
ただ、これアクセスログが見れないんでどっかいい場所がないか探り中。
【xyzzy で階乗を求める】
http://kazamai-naruto.spaces.live.com/blog/cns!17D3E5D8390D408!236.entry
【「子どもが二人居て、少なくとも一人は火曜日生まれの男の子の場合に、もう一人も男の子である確率」を求める SQL】
http://kazamai-naruto.spaces.live.com/blog/cns!17D3E5D8390D408!246.entry
【.NET Framework での「クラスとメソッドの名前を使ってのメソッドの実行」】
http://kazamai-naruto.spaces.live.com/blog/cns!17D3E5D8390D408!248.entry
あと、ついでにつぶやいてます。
http://twitter.com/KAZAMAI_NaruTo
僕の「please wait while the installer finishes determining your disk space requirements」で止まった理由
2010年6月18日 コンピュータVirtual PC に Remote Desktopで接続して、Subversion をインストールしようとしたら、
と出てインストールが進まなくなる現象に出くわした。
ググるとコマンドラインでインストールしろとか、Virtual Machine の追加機能をアンインストールすればいいとかあった。
とりあえず、追加機能のアンインストールをして Remote Desktop で Subversion のインストールを試みたみたがだめだった。
その状態で Remote Desktop をやめて直接 Virual PC からインストーラを起動しすれば、
無事チェック画面を通過し、その先は Remote Desktop から操作してインストールできた。。
(Host機自体へ Remote Desktop でつないでいたため、 Virtual PC で追加機能を入れていないとマウスが操作できない)
ここで、ふと思いついた。
リモートデスクトップのオプションで「ローカルデバイス」でディスクを接続しているのを切って
再度、インストーラを立ち上げてみたら、「please wait ~」のメッセージは出なかった。
そして「ローカルデバイス」でディスクを接続するようにしたら現象が再現した。
エラーメッセージと比しても「あぁ、ここでトラぶりそうだね~」って感じと合致する。
そういうわけで
ってのはどうでしょうか。
=======
平成23年9月20日追記
Windows 7 の Virtual PC だと統合機能を有効にするとホスト機のディスクにアクセスできるようになりますが、これも同じトラブルのトリガになると思われる。
please wait while the installer finishes determining your disk space requirements
と出てインストールが進まなくなる現象に出くわした。
ググるとコマンドラインでインストールしろとか、Virtual Machine の追加機能をアンインストールすればいいとかあった。
とりあえず、追加機能のアンインストールをして Remote Desktop で Subversion のインストールを試みたみたがだめだった。
その状態で Remote Desktop をやめて直接 Virual PC からインストーラを起動しすれば、
無事チェック画面を通過し、その先は Remote Desktop から操作してインストールできた。。
(Host機自体へ Remote Desktop でつないでいたため、 Virtual PC で追加機能を入れていないとマウスが操作できない)
ここで、ふと思いついた。
リモートデスクトップのオプションで「ローカルデバイス」でディスクを接続しているのを切って
再度、インストーラを立ち上げてみたら、「please wait ~」のメッセージは出なかった。
そして「ローカルデバイス」でディスクを接続するようにしたら現象が再現した。
エラーメッセージと比しても「あぁ、ここでトラぶりそうだね~」って感じと合致する。
そういうわけで
Remote Desktopで「please wait ~」のダイアログが出たら「ローカルデバイス」のディスクの接続を外してみる
ってのはどうでしょうか。
=======
平成23年9月20日追記
Windows 7 の Virtual PC だと統合機能を有効にするとホスト機のディスクにアクセスできるようになりますが、これも同じトラブルのトリガになると思われる。
ASP.NET で static変数使うと危ないんだけどなぁ。。。
2010年5月8日 コンピュータなんか、
「実はオブジェクト指向ってしっくりこないんです!」
http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html
ってのが話題になっていて読んでみた。
僕自身は唯一絶対の手法は無いという考えなので、
考え方自体には無理に反対はしない(同意するというわけでもない)が、
気になったのは本文中の
とコメント中の
って部分。
ASP.NET をIIS で動かすとき、一つのプロセスあたりで複数のリクエストを同時に受ける。(プロセス自体はは複数にすることはできる。)リクエスト毎にスレッドが作られるから実質的に「マルチスレッド」となる。
したがって、あるリクエストに対応するスレッドで書き換えた static変数がそのスレッドの処理が終了する前に他のスレッドで書き換えらえる可能性があり、
意図してそうしていない場合は
「単一のリクエストでテストしている場合は発現しないが、実環境で同時アクセスがあった場合に発現する」ような危険なバグを含む状態となる。
だから、うかつに static変数を使うべきではない。
このことは次のページにも記述されています。
(日本語のページは機械翻訳でダメダメなので英語のページを挙げておきます。)
Troubleshooting ASP.NET applications with the use of static keywords
http://support.microsoft.com/kb/893666/en-us
あと、一応僕の過去の日記でちらっとかいてあります。。。。
(「singleton pattern」 と言うよりは「request単位での唯一オブジェクトを扱う singleton pattern の変形」なんですが。)
http://10395.diarynote.jp/200508180846030000
---
平成22年5月18日追記
コメントがいっぱいあるので読み落としてしまっていましたが、
一度失敗をされて今は ASP.NET で static変数は使っていないとの旨の作者の
コメントが件のページありました。
余計なこと書いてしまった。。。orz
「実はオブジェクト指向ってしっくりこないんです!」
http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html
ってのが話題になっていて読んでみた。
僕自身は唯一絶対の手法は無いという考えなので、
考え方自体には無理に反対はしない(同意するというわけでもない)が、
気になったのは本文中の
「共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。」
とコメント中の
「理屈こねてるよりVisual StudioでWEBアプリ作ればそれでいいの。」
って部分。
ASP.NET をIIS で動かすとき、一つのプロセスあたりで複数のリクエストを同時に受ける。(プロセス自体はは複数にすることはできる。)リクエスト毎にスレッドが作られるから実質的に「マルチスレッド」となる。
したがって、あるリクエストに対応するスレッドで書き換えた static変数がそのスレッドの処理が終了する前に他のスレッドで書き換えらえる可能性があり、
意図してそうしていない場合は
「単一のリクエストでテストしている場合は発現しないが、実環境で同時アクセスがあった場合に発現する」ような危険なバグを含む状態となる。
だから、うかつに static変数を使うべきではない。
このことは次のページにも記述されています。
(日本語のページは機械翻訳でダメダメなので英語のページを挙げておきます。)
Troubleshooting ASP.NET applications with the use of static keywords
http://support.microsoft.com/kb/893666/en-us
あと、一応僕の過去の日記でちらっとかいてあります。。。。
(「singleton pattern」 と言うよりは「request単位での唯一オブジェクトを扱う singleton pattern の変形」なんですが。)
http://10395.diarynote.jp/200508180846030000
---
平成22年5月18日追記
コメントがいっぱいあるので読み落としてしまっていましたが、
一度失敗をされて今は ASP.NET で static変数は使っていないとの旨の作者の
コメントが件のページありました。
余計なこと書いてしまった。。。orz
SQL Server 2008 R2 Developer Edition 日本語版の isoイメージを MSDN Subscriber Download から Download してきた。
で、HDD の容量がきついから DVD-R に焼いて退避しようとした・・・・らできなかった。
DVD-R は容量 4.7GB だが、これはMB では 4483MB らしい。
で、SQL Server 2008 R2 Developer Edition 日本語版の iso イメージは 4511MB なので焼けないのである。
他の Edtition (Enterprise, Standard, Web ,Workgroup )でも MB単位のサイズは同じである。
ちなみに、SQL Server 2008 R2 Developer Edition 英語版は 4177MB で問題は無い。
このトラブル、確か Visual Studio 2008 Team Foundation Server でもあったような。。。。
そういうわけで、SQL Server 2008 R2 日本語版をメディアに焼く場合は、DVD-R DL や DVD+R DL を利用しましょう。当然も対応したドライブも要りますが。
---
平成22年5月11日
タイトルに「日本語版」を追加
--
平成22年5月17日追記
僕は試していないですが、Virtual PC に SQL Server2008 R2 の isoイメージをマウントしてインストールしようとすると失敗するという噂があります
(英語版でも発生するらしい)。Virtual PC の isoドライバ側の問題(4GBまでしか対応していない)らしく、
ファイルに展開すればインストールできるらしいです。
平成22年7月20日 追記への追記
つまり、ホスト機で daemon tools とか Virtual CloneDrive で iso を 仮想CD としてマウントしてその中のフォルダをファイル共有で参照すればインストールできるって意味です。(MSDNサイトで昔紹介されてた Virtual CD はたぶんこのサイズに対応していない。)
---
平成22年6月7日追記
Amazon の「SQL Server 2008 R2 Developer 日本語版」パッケージのページの動作環境に「2層式DVD(DVD-9形式 容量8.5GB)対応のDVD-ROMドライブ」が必要とある。
http://amzn.to/dqsTaN
---
平成24年3月8日追記
SQL Server 2012 Evaluate Edition 日本語版の iso は 4823.9MB です。同じく DVD-R には焼けません。
http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=a74d1b60-6566-4551-b581-03337853b82b&displaylang=ja-nec
で、HDD の容量がきついから DVD-R に焼いて退避しようとした・・・・らできなかった。
DVD-R は容量 4.7GB だが、これはMB では 4483MB らしい。
で、SQL Server 2008 R2 Developer Edition 日本語版の iso イメージは 4511MB なので焼けないのである。
他の Edtition (Enterprise, Standard, Web ,Workgroup )でも MB単位のサイズは同じである。
ちなみに、SQL Server 2008 R2 Developer Edition 英語版は 4177MB で問題は無い。
このトラブル、確か Visual Studio 2008 Team Foundation Server でもあったような。。。。
そういうわけで、SQL Server 2008 R2 日本語版をメディアに焼く場合は、DVD-R DL や DVD+R DL を利用しましょう。当然も対応したドライブも要りますが。
---
平成22年5月11日
タイトルに「日本語版」を追加
--
平成22年5月17日追記
僕は試していないですが、Virtual PC に SQL Server2008 R2 の isoイメージをマウントしてインストールしようとすると失敗するという噂があります
(英語版でも発生するらしい)。Virtual PC の isoドライバ側の問題(4GBまでしか対応していない)らしく、
ファイルに展開すればインストールできるらしいです。
平成22年7月20日 追記への追記
つまり、ホスト機で daemon tools とか Virtual CloneDrive で iso を 仮想CD としてマウントしてその中のフォルダをファイル共有で参照すればインストールできるって意味です。(MSDNサイトで昔紹介されてた Virtual CD はたぶんこのサイズに対応していない。)
---
平成22年6月7日追記
Amazon の「SQL Server 2008 R2 Developer 日本語版」パッケージのページの動作環境に「2層式DVD(DVD-9形式 容量8.5GB)対応のDVD-ROMドライブ」が必要とある。
http://amzn.to/dqsTaN
---
平成24年3月8日追記
SQL Server 2012 Evaluate Edition 日本語版の iso は 4823.9MB です。同じく DVD-R には焼けません。
http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=a74d1b60-6566-4551-b581-03337853b82b&displaylang=ja-nec
手を出すなら今! 『魔王「この我のものとなれ、勇者よ」勇者『「断る!」』
2010年4月29日 読書『魔王「この我のものとなれ、勇者よ」勇者「断る!」』
http://maouyusya2828.web.fc2.com/index.html
にうっかり手を出してしまった。
分量が多くて読むのに時間がかかるが面白くてやめられない。
仕事が忙しいのについつい読みふけってしまいました。
普段なら「読んではいけない」というが、時は今、GW である。
今手を出さないと後悔するぞ!(時間的な意味で)
おすすめ~(期間限定・・・いや、時間に関する責任は取らない)。
http://maouyusya2828.web.fc2.com/index.html
にうっかり手を出してしまった。
分量が多くて読むのに時間がかかるが面白くてやめられない。
仕事が忙しいのについつい読みふけってしまいました。
普段なら「読んではいけない」というが、時は今、GW である。
今手を出さないと後悔するぞ!(時間的な意味で)
おすすめ~(期間限定・・・いや、時間に関する責任は取らない)。
「23:59:59.999」で
http://10395.diarynote.jp/200606080926140000/
に検索してきていた人がいたので、SQL Server 2008 で例示。
SQL:
結果:
お楽しみください。
あと、これは僕の私的な見解だが、
いくら between のがパフォーマンスがいいと言われていても時刻を日付で制限するときには (<= )AND (< )でやるべき。他のチューニング項目に比すれば些細なことのはず。
===
平成23年7月5日追記
datetime の説明
http://msdn.microsoft.com/ja-jp/library/ms187819.aspx
の「datetime における 1 秒未満の秒の有効桁数の丸め処理 」の項目を参照してください。
http://10395.diarynote.jp/200606080926140000/
に検索してきていた人がいたので、SQL Server 2008 で例示。
SQL:
SELECT
CAST(’2006-6-8 23:59:59.999’ AS datetime2),
CAST(’2006-6-8 23:59:59.999’ AS datetime),
CAST(CAST(’2006-6-8 23:59:59.999’ AS datetime2) AS DATE),
CAST(CAST(’2006-6-8 23:59:59.999’ AS datetime) AS DATE),
CAST(floor(CAST(CAST(’2006-6-8 23:59:59.999’ AS datetime) AS float)) AS DATETIME)
結果:
2006-06-08 23:59:59.9990000
2006-06-09 00:00:00.000
2006-06-08
2006-06-09
2006-06-09 00:00:00.000
お楽しみください。
あと、これは僕の私的な見解だが、
いくら between のがパフォーマンスがいいと言われていても時刻を日付で制限するときには (<= )AND (< )でやるべき。他のチューニング項目に比すれば些細なことのはず。
===
平成23年7月5日追記
datetime の説明
http://msdn.microsoft.com/ja-jp/library/ms187819.aspx
の「datetime における 1 秒未満の秒の有効桁数の丸め処理 」の項目を参照してください。
子ども手当てに賛成した議員一覧
2010年4月3日 日常 コメント (1)「平成二十二年度における子ども手当の支給に関する法律案」投票結果
http://www.sangiin.go.jp/japanese/joho1/kousei/vote/174/174-0326-v012.htm
なんで税金が居るかわからん外国の子供に使われなきゃいけないんや。
くやしい。
くやしい。
くやしい。
くやしい。
くやしい。
くやしい。
くやしい。
くやしい。