|
|
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Господа, подскажите как поставить условие в запросе на последний день текущего месяца? Например Select поле1, поле2 From tabl1 where поле1 = "Последний день текущего месяца" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:04:37 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:09:59 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Только format тут лишний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:11:25 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Точно, мне почему-то показалось что DateSerial возвращает String а не Date ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:14:54 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Если бы он возвращал стринг, то форматировать надо было бы то, что слева от знака равенства. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:17:30 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Вот в хелпе про DateSerial написано: "Значение каждого аргумента функции DateSerial должно лежать в соответствующем диапазоне: 1 — 31 для дней и 1 — 12 для месяцев. Кроме того, можно использовать числовые выражения для описания относительной даты, т.е. на определенное число дней, месяцев и лет более поздней или ранней, чем указанная." насколько я понимаю, числовые выражения для описания относительной даты - например "месяц-1", "день + 1". А что значит ноль в таком выражении (DateSerial(Year(Date()),Month(Date())+1,0)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:27:44 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Тогда DateSerial(Year(Date()),Month(Date())+1,1)-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:31:46 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
stagВот в хелпе про DateSerial написано: "Значение каждого аргумента функции DateSerial должно лежать в соответствующем диапазоне: 1 — 31 для дней и 1 — 12 для месяцев. Кроме того, можно использовать числовые выражения для описания относительной даты, т.е. на определенное число дней, месяцев и лет более поздней или ранней, чем указанная." насколько я понимаю, числовые выражения для описания относительной даты - например "месяц-1", "день + 1". А что значит ноль в таком выражении (DateSerial(Year(Date()),Month(Date())+1,0)? Но DateSerial корректно работает и при "нелегальных" значениях параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:34:12 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Alexey ShТогда DateSerial(Year(Date()),Month(Date())+1,1)-1 И плюс что-то на случай, когда Month(Date())+1 даст 13. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:34:44 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
stagА что значит ноль в таком выражении (DateSerial(Year(Date()),Month(Date())+1,0)?Это значит что функция вернет -1 от следующего месяца. Конструкция работает, проверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:37:22 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
вот именно, что работает корректно - для данной задачи. Хотелось бы знать, кроме этого конкретного случая, как это будет работать (всегда как -1?). Или это только методом тыка можно узнать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:38:05 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
stagвот именно, что работает корректно - для данной задачи. Хотелось бы знать, кроме этого конкретного случая, как это будет работать (всегда как -1?). Или это только методом тыка можно узнать?Я DateSerial часто мучаю некорректными параметрами, пока глюков замечено не было. Все время что-то возвращает, причем так как надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:40:14 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
stagвот именно, что работает корректно - для данной задачи. Хотелось бы знать, кроме этого конкретного случая, как это будет работать (всегда как -1?). Или это только методом тыка можно узнать? Всегда работает так, как и ожидается. Если тот параметр, который день, уменьшить на Х дней, то и получится на Х дней раньше. Проблема может возникнуть в будущих версиях Аксесса, если Майкрософт решит запретить такие вещи. На этот случай вот сверхкорректное решение: dateadd("d",-1,dateadd("m",1,dateserial(year(date),month(date),1))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:40:42 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
извините за непонятливость:-( ВСВсегда работает так, как и ожидается. - так я и спрашиваю, как ожидается. ВСЕсли тот параметр, который день, уменьшить на Х дней, то и получится на Х дней раньше. - по-моему, это как раз корректные параметры... А вот что ожидается от нуля - я не пойму. Почему если вместо дня написать 0, получится "день-1"? Вы так всегда пользуетесь, и, например, вместо "месяц-1"? Как-то странно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 14:55:38 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Нулевой день следующего месяца = последний день текущего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 15:01:15 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
Владимир СанычПроблема может возникнуть в будущих версиях Аксесса, если Майкрософт решит запретить такие вещи. На этот случай вот сверхкорректное решение: dateadd("d",-1,dateadd("m",1,dateserial(year(date),month(date),1))) по-моему, вот это проще: DateAdd("m", 1, Date) - Day(Date) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 15:01:50 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
YanisНулевой день следующего месяца = последний день текущего а минус первый день - на самом деле минус второй... то есть предпоследний. нда... так-то вот хелпом пользоваться - мне было бы очень удивительно, что у меня "день -1" или даже просто "-1" выдает не то, что я жду (по моей логике это был бы как раз последний день текущего месяца, то есть следующий месяц минус один день):-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 15:10:34 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
stag YanisНулевой день следующего месяца = последний день текущего а минус первый день - на самом деле минус второй... то есть предпоследний. нда... так-то вот хелпом пользоваться - мне было бы очень удивительно, что у меня "день -1" или даже просто "-1" выдает не то, что я жду (по моей логике это был бы как раз последний день текущего месяца, то есть следующий месяц минус один день):-)А это потому что в хелпе написано stag"Значение каждого аргумента функции DateSerial должно лежать в соответствующем диапазоне: 1 — 31 для дней и 1 — 12 для месяцев""0" является таким же числом, как и "-1", и никто его из целых чисел не исключал. Так что ничего удивительного нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 15:19:52 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
У нас есть три решения: DateSerial(Year(Date()),Month(Date())+1,0) dateadd("d",-1,dateadd("m",1,dateserial(year(date),month(date),1))) DateAdd("m", 1, Date) - Day(Date) Никто не хочет для полноты картины измерить скорость выполнения каждого из них? Было бы занятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 15:22:39 |
|
||
|
Последний день месяца
|
|||
|---|---|---|---|
|
#18+
stagизвините за непонятливость:-( ВСВсегда работает так, как и ожидается. - так я и спрашиваю, как ожидается. ВСЕсли тот параметр, который день, уменьшить на Х дней, то и получится на Х дней раньше. - по-моему, это как раз корректные параметры... А вот что ожидается от нуля - я не пойму. Почему если вместо дня написать 0, получится "день-1"? Вы так всегда пользуетесь, и, например, вместо "месяц-1"? Как-то странно... Пример. ?dateserial(2004,7,1) 01/07/2004 ?dateserial(2004,7,0) 30/06/2004 ?dateserial(2004,7,-1) 29/06/2004 ?dateserial(2004,7,-2) 28/06/2004 Каждый раз уменьшаем параметр, отвечающий за день, на 1 и получаем дату меньше на 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 16:57:27 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32621296&tid=1672941]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 442ms |

| 0 / 0 |
