select adddate(now(), interval- 3 month);
これで、3ヶ月前の日付が得られる。引数は前から
「基準日、差分、単位」
となっている。
year,day,hour等も利用可能。
ずっとMS SQLSERVERかPostgreSQLをメインに使ってたんだけど、最近MySQLに触れることがどんどん増えてきました。まぁ覚えておいて損はないので備忘録に追加。
grant all on DB名.* to 'ユーザ名'@'%' identified by 'パスワード';
flush privileges;
allは全部できまっせ、という意味。DB名のあとのアスタリスクはワイルドカード。すべてのテーブルに対して、という意味。ユーザ名のあとの「%」はどっからでも、という意味。これを「localhost」としておけば、localhostからの接続しか許可しないようになる。まぁMySQLよりも先にLinuxのFWがあるが。
「flush privileges;」は設定情報を反映させるコマンド。ついついコレを忘れてしまう。
$_SERVER['HTTP_X_DCMGUID'];
UIDとは別物の7桁半角英数字。上記はPHPでの例です。
ドコモも勝手サイトを無視できなくなってきたんでしょうね。開発屋としてはありがたい限りです。ただ、きっと完全にユニークな値であることは保障されないんだろうな。UID同様、使いまわすんだろうな。注意せねば。
手を抜いてyumでperlをインストールしたらどこにインストールされたのかわからんようになってしまいました。ちゃんとソースコード落としてきてmakeしろっていうことなんですよね。
whereis perl
これでperlの実行ファイルへのパスが表示されます。
いやいや、いい加減学習しないとね。(←MySQLで前科アリ)
コマンドプロンプトで実行する例
nslookup -q=ns ドメイン
nameserver = だれそれ、っていう感じで答えてくれます。DNSの切り替えのときに使うくらいなので覚えちゃいないが、ちと使うタイミングがあったので備忘録。
/etc/sysconfig/network-scripts/ifcfg-eth0
NICが2枚あったらeth1になるんでしょうね。
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.0.99
GATEWAY=192.168.1.1
上から、起動時に有効にするか。「none」で固定IP、「dhcp」でまんまDHCP、あとはIPとゲートウェイ。
その他、MACアドレスも記載されてますが、それはOSインストール時に勝手に書かれます。
いまどきのLinuxってディスクが5~6枚あるので、焼くのが大変だったんですよね。まぁ全部焼かなくてもいいのですが、つい全部焼いておいてしまう。
で、今回CentOSのマシンをセットアップするのにネットワークインストールなるものを試してみました。これがもうカンタンラクチン。
CentOSのisoをダウンロードする際に「CentOS-5.1-i386-netinstall.iso」(今回はCentOS5を使用)を選択してダウンロード。ブートデバイスにUSBメモリが使えるならUSBメモリ、CDだけならこのISOをCDに焼きます。
あとはそれぞれのデバイスでブート、途中まではいつもとおんなじです。
「Installation Method」、インストール方法の選択画面で「http」か「ftp」を選択するだけ。今回はftpを利用しました。
ネットワークの設定は自動にしちゃって、ftpサーバの指定は「ftp.riken.jp」(理研さん、ありがとうございます)。ディレクトリは「/Linux/centos/5/os/i386」、「Use non-anonymouse ftp」にはチェックを入れません。
ここ以降は通常のインストールのまんま。変わりはありません。勝手にファイルをダウンロードしてインストールしてくれます。
OSのメディアなんて何度も使うものじゃないから、これはすっごく便利です。
Parseしてcatchするかどうかの判定でもいいのですが、いまいちスマートじゃないなぁと。
そしたら2.0からTryParseなるメソッドが追加されていました。
いやー、不勉強ここにいたるという感じですな。
int intReturn;
Console.WriteLine (int.TryParse("hoge",out intReturn));
上記例だとFalseが出力されます。
第一引数"hoge"が整数か否かを判定して、「ちげーよ」っていう結果が出てるんですよね。整数だったらTrueが返ります。boolです。
また、Falseの場合にはintReturnに「0(ゼロ)」がセットされます。Falseの0なんですけど、何に使うのかがわかりませんでした。せめて初期値を指定できて、Falseならその値が返ってくれればいいのですが、一行目を
int intReturn = 1234;
としておいても、0が返ります。
select
case
when hoge = 1 then '1でした'
when hoge = 2 then '2でした'
end as hogecase from hogetable
わかりにくい例ですが、case~endがまぁcaseブロック、when以降が条件、then以降が結果ですね。コレをしらないと、ロジック側でループさせながらぐりぐり判定させないといけないのですが、知っていることによって大幅にロジックを減らせます。
SQLServerやPostgreSQL限定ではなく、SQL-92に載っている手法なので、他のDBでも利用可能です。知っておくべき、活用すべきでしょう。
String.Format("{0:yyyyMMdd}",DateTime.Now)
まぁこれだけの話なのですが、しょっちゅう書き方忘れるので備忘録に。