0

過去2年間の月の最初と最後の日付を見つけるにはどうすればよいですか。たとえば、今日は07-01-2012(mm-dd-yyyy);です。2011年のデータを検索したい...2011年1月1日2011年1月31日2011年2月1日2011年2月28日。そのような何かありがとう。

4

6 に答える 6

2

これを行うには、php の日付関数を使用します。

$first = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
$last = date('Y-m-t', mktime(0, 0, 0, $month, 1, $year));

$Startyear=2010;
$Endyear=2012;
$monthstart=array();
$monthend=array();
for($i=$Startyear;$i<=$Endyear;$i++){
for($j=1;$j<=12;$j++){
$monthstart[$i][$j]=date('Y-m-d', mktime(0, 0, 0, $j, 1, $i));
$monthend[$i][$j]=date('Y-m-t', mktime(0, 0, 0, $j, 1, $i));
}
}
于 2012-07-11T10:29:58.233 に答える
1
 select LAST_DAY('2011-01-01') from dual;
于 2012-07-11T10:24:27.183 に答える
0

私のアルゴリズムは、月の日数を見つけることです。それに基づいて、最初と最後の日を見つけることができます。1 か月の日数を求めるには、最初の規則を使用できます。うるう年をチェックする必要があるのは 2 月だけです

31 日月 (月のシーケンス番号 > 7 ) ?(月のシーケンス番号 + 1)%2 : (月のシーケンス番号) % 2. 上記の式の結果が真の場合は、月 31 日、そうでない場合は月 30 日です。月 seqno 2 (2 月) についてのみ、うるう年の計算を考慮する必要があります。

于 2012-07-11T10:56:32.313 に答える
0

これを試して

DECLARE @mydate DATETIME

SELECT @mydate = GETDATE()

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,
'Last Day of Previous Month'

UNION

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101) AS Date_Value,
'First Day of Current Month' AS Date_Type

UNION

SELECT CONVERT(VARCHAR(25),@mydate,101) AS Date_Value, 'Today' AS Date_Type

UNION

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,
'Last Day of Current Month'

UNION

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),101) ,
'First Day of Next Month'
于 2012-07-11T10:35:15.047 に答える
0

PHP の関数date('t')は、1 か月の日数を返すことができます。

echo date('t', mktime(1, 1, 1, 2, 1, 1970));
// outputs 28

そして第二に、月の最初の日は常に1

于 2012-07-11T10:25:02.690 に答える