【SQL Server】 肥大化した.ldfファイルを削除

SQL Serverデータベースを新規作成すると、標準設定では復旧モデルが「完全」になっています。
復旧モデルが「完全」の場合、.ldfファイルにログが貯まる仕組みです。 重要なデータで復旧が必要な場合この.ldfファイルは重要ですが、 消えても問題無いデータの場合、データベースの復旧モデルは「単純」に設定すると.ldfファイルは溜まりません

Microsoft SQL Server Management Studioから設定する場合で試してみました。

変更方法はデータベースを選択し右クリック後[プロパティ]でダイアログが表示されます。
[オプション|復旧モデル]にコンボボックスがあるので、「単純」に変更します。

ここで「単純」に変更し再起動してもldfファイルサイズの変化はありません。
データベースの圧縮が必要です。 データベースプロパティ変更したときのように、データベースを選択し右クリックし次は、[タスク|圧縮|ファイル]を選択します。

[ファイルの圧縮]という名称のダイアログが表示されます。 ダイアログ中央右の[ファイルの種類]「ログ」に変更し、すこし下の[圧縮のアクション|未使用領域の開放前にページの再構成をする]ラジオボタン選択します。
[圧縮先のファイル]サイズを少なく指定しましょう(「2MByte」など)

最後に[OK]ボタンでファイルの圧縮が実行されます。

さいごに

この手順は、Microsoft SQL Server Standard (64-bit) 12.0.4232.0で試しました。

Node.jsで時刻(Date)を使う

[Node.jsで時刻表示]()

console.log(new Date());
//もしくは
console.log(new Date(Date.now() ) );

> Fri Dec 14 2018 14:40:40 GMT+0900 (JST) {}

上記のように表示されます。

文字列からDate変換

この表示された文字列を「{}」部分だけ外すとDate.parse()できます。

let t = new Date(Date.parse(“Fri Dec 14 2018 14:40:40 GMT+0900 (JST) {}”.replace(‘{}’, )) );
console.log(t);

//こんな文字フォーマットでも可能です
let t1 = new Date(Date.parse(‘2018-12-14T00:00:31.6410000+00:00’));
//+00:00設定したので、日本時間表示では
//t1 = Fri Dec 14 2018 09:00:31 GMT+0900 (JST) こうなります。

Dateの演算

3日後や、1ヶ月後など計算したい場合

let t2 = new Date(Date.now()); //現在時刻取得
t2.setHours(t2.getHours() + 2); //2時間後の
t2.setDate(t2.getDate() – 3); //3日前の
t2.setMinutes(t2.getMinutes() + 10); // 10分後
console.log(‘t2 = ‘ + t1);

t2 = Wed Dec 12 2018 00:07:16 GMT+0900 (JST)

aws lambda Node.js 8.10の場合

日本時間のクリスマス '2018-12-25T00:00:00.0000000+09:00'を表示すると

“2018-12-24T15:00:00.000Z”

aws lambdaがUTCなので、24日になってしまいます。

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED