sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008で今日から1か月前に取得するにはどうすればよいですか?

    SQL Server 2008には、dateがあります。 時間が添付されていないデータ型。したがって、変換してからDateAddを実行するだけで、時間部分を非常に簡単に削除できます。 。

    SELECT DateAdd(month, -1, Convert(date, GetDate()));
    

    これにより、dateが返されます データ・タイプ。強制的にdatetimeにする ここでも、Convertをもう1つ追加するだけです。 :

    SELECT Convert(datetime, DateAdd(month, -1, Convert(date, GetDate())));
    

    datetimeへの明示的な変換は必要ない場合があります 、しかし。

    注:「今日から1か月前」は、さまざまな方法で定義できます。 SQL Serverで機能する方法は、前月から現在の月と同じ日番号に最も近い日を返すことです。これは、3月31日に実行したときのこの式の結果が2月28日になることを意味します。したがって、1つを実行した場合など、これの影響について明確に考えないと、特定のシナリオで期待される結果が得られない場合があります。月の計算を複数回行い、別の月に同じ日を取得することを期待します(3月->2月->1月など)。

    SQLFiddleでライブデモを見る

    デモでは、各式の値と結果のデータ型が表示されます。



    1. JSPページの実行中にMySQLデータベースから抽出されたデータがありません

    2. SQLの最適化:Xmlまたは区切り文字列

    3. 参照カーソル以外のものを返すラッパーを作成する方法

    4. 外部FTPサイトからcsvファイルをインポートします