AccessにおけるDateDiff関数の第一引数について、

yとdの違いがわかりません。

DateDiff("y",#1990/10/1#,#1998/10/1#)
DateDiff("d",#1990/10/1#,#1998/10/1#)

どちらも同じ結果が返ってきます。
どう違うのでしょうか?
または、一緒である場合、なぜ二種類あるのでしょう?
ご存知の方、教えてください。

回答の条件
  • 1人3回まで
  • 登録:2006/06/23 12:35:54
  • 終了:2006/06/23 12:53:50

ベストアンサー

id:llusall No.1

llusall回答回数505ベストアンサー獲得回数612006/06/23 12:45:01

ポイント70pt

オンラインヘルプを見ると

名前付き引数 date1 と date2 の間の日数を求めるには、年間通算日 ("y") か、日 ("d") のいずれかを指定します。

とあります。

つまり、どちらでも良いということです。


なぜ、2種類あるのかは、マイクロソフトの仕様だからと解釈する他ないと思います。

id:hina1981

ありがとうございます。

ヘルプを確認してみたら、確かにそのように書いてありました。

ExcelのDatedif関数は、もっと融通が利いた("md"とか、"yd"とか)ような気がしていたので、混同してました。

ありがとうございます。

2006/06/23 12:53:14
  • id:taknt
    >なぜ、2種類あるのかは、マイクロソフトの仕様だからと解釈する他ないと思います

    これは、ひどいよなぁ。

    どうしてマイクロソフトは、わざわざ 年間通算日というのと 日というのを作ったのか、それなりに理由があるはずで、その理由がなぜか?という質問だからだ。

    仕様だから おしまい というのでは ひどいなぁと思いますね。

    もちろん、マイクロソフトに聞かないと わからないことでも 知ってる人は いるわけであり、その知っている人が 回答してあげれば 済むことかと思ってたけどね。
  • id:rikuzai
    お疲れ様です。

    表示単位における「年間通算日」と「日」の違いについてですが、
    それぞれ
    年間通算日=1~366(うるう年があるから)
    日=1~31
    の範囲で計算し表示をするというものです。

    日付関連の関数定義には皆含まれていると思いますが、
    たまたまDateDiff関数が日付の差分を出す関数なので答えが同じというだけで、
    例えばDatapartで下記の式の結果を見ていただいたら一目瞭然かと思います。
    DatePart("y",#2006/05/01#)
    DatePart("d",#2006/05/01#)
  • id:taknt
    >つまり、どちらでも良いということです。

    用途によっては、気をつけないといけないんですね。
  • id:llusall
    不快な回答をしてしまい、すみません。
    「仕様・・・」につきましては、M$さんのよくある回答なので皮肉を込めてこのように申し上げました。
    (泣き寝入りすることも多々あるので)
    不適切・不真面目でしたね。反省します。


    余談ですが、「もしマイクロソフトが自動車を作ったら」という、昔はやった?
    ジョークを思い出しました。
    http://jove21.com/palm/article.php?id=305
    #最後に「仕様です」とのくくりになっており、とても印象に残っています。


    >その知っている人が 回答してあげれば 済むことかと思ってたけどね。
    につきましては、
    「お互い様のこともあるのでは?」と思います。


    >用途によっては、気をつけないといけないんですね。
    につきましては、
    用途 × --> 関数 ○
    ですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません