• ベストアンサー

LAST_DAY関数は?

OracleのLAST_DAY関数にあたるものは、SQLServer(T-SQL)には用意されていないのでしょうか? やりたいことは、select文で拾ってきた日付をもとにその月末日を表示させたいのですが。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • 7marine
  • ベストアンサー率36% (59/160)
回答No.1

無かったと思います declare @d datetime,@d2 datetime select @d = getdate() select @d2 = cast(year(@d) as char(4)) + '/' + cast(month(@d) as nvarchar(2)) + '/1' select dateadd(day,-1,(dateadd(month , 1, @d2 ))) as 当月末,@d as 今日 もっと簡素な方法があるかも

whyoneone
質問者

お礼

ご回答有り難うございます。

関連するQ&A

  • Lag関数はないのでしょうか?

    SQLServer2005を使用しています。 OracleでいうところのLag関数とおなじような関数は、SQLServerにはないのでしょうか? オラクルと同じようにSQLを書くと、「組込関数ではない」とエラーが出てしまいます。 自分で調べて、以下のURLのように記述してみると、今度は「Rows付近に不適切な構文があります。」と言われてしまいます。。。 http://oraclesqlpuzzle.hp.infoseek.co.jp/db2/db2-8-1.html SQLServerでは、実現できないのでしょうか?

  • SQLがうまくいかない!

    SQLがうまくいかない! SQLについて、調べたんですが、わからないので教えてください! last_year(日付データ)関数 と round(日付データ,'書式')関数についてのご質問です。 select last_year('2007-01-01') from 表名; とやるとうまくいくのに 、 select round('2007-01-01','month') from 表名; とやるとエラーになってしまいます。 last_year関数では、'2007-01-01'は日付データとして扱われるのに、round関数では日付データとして扱われないのはなんででしょう? ちなみに、 select round(to_date('2007-01-01','yy-mm-dd'),'month') from 表名; とやるとうまくいきます・・・SQLの仕様ですか!? どなたか教えてください!宜しくお願い致します。

  • SQLServerでのSELECT文をORACLE9iで使用したいのですが・・・

    SQLServer2000で使用していたSELECT文をORACLE仕様にする場合どのように修正すればよいですか? 試行錯誤やっているのですが、思うようにできません。 関数a(関数b())といった作法は無理なのでしょうか? ※関数a(関数b())のような構成だと [ORA-00938: 関数の引数が不足しています] 等が発生する (SQLServerでのSELECT文) SELECT F列A + SPACE(11-LEN(F列A)) + ISNULL(F列B,SPACE(0)) AS F列C, F列A ,F列B FROM T表 どなたかご教授おねがいします

  • エクセルの日付関数

    エクセルの日付関数 申し訳ありませんが、教えてください。 1ヵ月後の同じ日(2010/9/10 であれば 2010/10/10)と、 1ヵ月後の月末(2010/9/30 であれば 2010/10/31)を表示させる関数を教えてください。

  • SQL CASE 文について

    開発環境 SQLSERVER VB2005 SQLのCASE文についての質問ですが、DATE型のデータが有効値の場合は”スペース”それ以外の場合は格納されているDATE型を表示したいのですが、どなたかご教授お願いいたします。下記のSQLでは全ての日付が出てしまいます。 SELECT CASE 日付 WHEN '2000/01/01' THEN ' '     ELSE 日付          END AS Expr1 FROM  テーブル CASE文以外でもできますか? よろしくお願いいたします。

  • アクセスの関数で

    DATEADD関数(日付に数字を足したり、引いたりなどして何日か前、何日か後、何ヶ月か前などの日付を求める関数)などを使って、つねに月末をかえす関数はありますか? 他の関数でも結構です。 よろしくお願い致します。

  • 表示形式の指定方法について

    お世話になります。 Microsoft SQLServer 7.0での質問です。 decimal(10)属性で定義されている項目をselectし、結果の表示形式を'00000'にしたい のですがうまくいきません。 Oracleからの移行のため苦戦しています。 質問1 そもそもそのような関数は用意されているのでしょうか?(実現は可能でしょうか?) 質問2 可能な場合、解決方法をご教授ください。 SQLServerに携わるのが今回初めてなため、調査方法に限界があり、最後の 砦として質問させていただきました。 宜しくお願いいたします。

  • SQL鯖2000でROWNUM関数

    SQL鯖2000を使用しております。 Oracle感覚で以下のSQL文を実行しようとしたところ、 select rownum 行番, tbl.* from tbl エラーが出ます。 実現可能かどうか、あるいは原因と対策を知りたいです。 お願いいたします。

  • SELECT文でLEFT関数を使うと未定義関数ですと言われる

    VBソース上では SELECT LEFT(~~~,4) AS 項目 FROM テーブル と SELECT文で書いてもエラーにならずオープンできるみたいなのですが そのSQL文をACCESS2000上で動かすと 未定義関数LEFTがあると言われます どなたか分かる方至急お願いします!!!

  • 日付が自動的に変わる関数は?

    関数なんて自分で考えて作るものなのでしょうか? 元からある「式」をそのまま取り出してポンと置けば済むのだとばかり、思っていました。 それほどの初心者です。 前置きが長くてすみません。 日付に関する関数について、どうしてもわからない事があって書き込みをしました。 ここに二つのセルがあります。 左のセルには直接入力で日付を入れていって、右のセルには、左のセルの日付が1日から10日だったら自動的にその月の15日と表示するように、同様に11日から20日だったら25日と、21日から末日だったら、翌5日と、表示したいのですが、どうすればよいのでしょう?(ちなみに日付の表示は「●/●」となるように。) IFやDAYを駆使したつもりですが、どうもうまくいきません。 よろしくおねがいします。