Попробуйте что-то вроде этого:
$link = @new mysqli($this->host, $this->user, $this->pass)
$statement = $link->prepare($sqlStatement );
if(!$statement)
{
$this->debug_mode('query', 'error', '#Query Failed<br/>'.$link->error);
return false;
}
Вам нужно только количество завершенных 7-дневных интервалов с первой записи?
dvec <- as.Date("2001-04-01")+0:90
dweek <- as.numeric(dvec-dvec[1]) %/% 7
dweek[1:21]
# [1] 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 2 2
strftime - ваш друг ...
? strftime # to see the help and the format
set.seed(1)
dates <- Sys.Date() + sample(1:365, size = 10)
R> dates
[1] "2012-02-11" "2012-03-21" "2012-06-01" "2012-09-30"
[5] "2012-01-18" "2012-09-25" "2012-10-11" "2012-06-30"
[9] "2012-06-18" "2011-11-28"
# %j for julian day - number of the day since the 1st of january each year
R> strftime(dates, format = "%j") # or format(dates, format = "%j")
[1] "042" "081" "153" "274" "018" "269" "285" "182" "170" "332"
R> strftime(dates, format = "%w")
[1] "6" "3" "5" "0" "3" "2" "4" "6" "1" "1"
# my locale is in French so...
R> strftime(dates, format = "%A")
[1] "samedi" "mercredi" "vendredi" "dimanche" "mercredi"
[6] "mardi" "jeudi" "samedi" "lundi" "lundi"
Кстати, что вы подразумеваете под днем, днем в течение месяца, недели или года?
Для каждой даты введите неделю года, к которой она принадлежит, форматируя ее с помощью format()
, используя %U
заполнителей формата %W
. %U
рассматривает воскресенье как первый день недели, тогда как %W
считает понедельник первым днем недели. Вот пример:
now <- as.Date(Sys.time())
dates <- seq(now, now + 25, by = "1 day")
dat <- data.frame(Dates = dates, Week = format(dates, format = "%W"))
head(dat, 10)
Который дает:
> head(dat, 10)
Dates Week
1 2011-11-06 44
2 2011-11-07 45
3 2011-11-08 45
4 2011-11-09 45
5 2011-11-10 45
6 2011-11-11 45
7 2011-11-12 45
8 2011-11-13 45
9 2011-11-14 46
10 2011-11-15 46
Хотя из вашего вопроса неясно, что именно вы хотите сделать, способ сопоставить этот вектор дат (ну, мой кадр данных dat
выше) через merge()
. Скажем, у нас есть вектор недель, который мы хотим сопоставить, и некоторые связанные данные в кадре данных weekdat
:
weekdat <- data.frame(Week = 44:50, Price = c(10, 20, 25, 30, 20, 15, 10))
. Тогда мы можем связать dat
с weekdat
, используя merge()
как таковую :
> merge(dat, weekdat)
Week Dates Price
1 44 2011-11-06 10
2 45 2011-11-07 20
3 45 2011-11-08 20
4 45 2011-11-09 20
5 45 2011-11-10 20
6 45 2011-11-11 20
7 45 2011-11-12 20
8 45 2011-11-13 20
9 46 2011-11-14 25
10 46 2011-11-15 25
11 46 2011-11-16 25
12 46 2011-11-17 25
13 46 2011-11-18 25
14 46 2011-11-19 25
15 46 2011-11-20 25
16 47 2011-11-21 30
17 47 2011-11-22 30
18 47 2011-11-23 30
19 47 2011-11-24 30
20 47 2011-11-25 30
21 47 2011-11-26 30
22 47 2011-11-27 30
23 48 2011-11-28 20
24 48 2011-11-29 20
25 48 2011-11-30 20
26 48 2011-12-01 20
Существуют другие способы сопоставления или привязки дат к неделям, но приведенное выше должно дать вам что-то для работы.
%/%
- я бы дал еще +1 для этого, если бы мог - ответ действительно очень аккуратен и краток. – Gavin Simpson 7 November 2011 в 20:12%/% (7*24*60*60)
– naught101 23 July 2014 в 02:16