powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как вернуть последние цифры года из Date()
14 сообщений из 14, страница 1 из 1
как вернуть последние цифры года из Date()
    #34277144
tupoyuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуста, Великие знатоки фокса и не только, бестолковому новичку.
Есть таблица, список сотрудников, очень большой.И вот у штук 800 в дате рождения имеют год рождения 2056 и тому подобное.Мне надо заменить 20 на 19 чтоб стало 1956 например.Я придумал тока перевести поле dr(дата рожд) в символьное обработать его символьными функциями, а потом опять в дату...а как по другому?

Попробовал вот так--
UPDATE reg;
set YEAR(dr)=VAL('19'+RIGHT(ALLTRIM(DTOC(YEAR(dr))),2));--ваще изврат? да?
WHERE !BETWEEN(dr,{^1900/01/01},DATE())--это не катит...

Огромное спасибо за поддержку и и уделенное время.
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34277156
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
replace all dr with gomonth(dr,- 12000 ) for between(year(dr), 1900 , year(date()))

или

Код: plaintext
update set dr = gomonth(dr, - 12000 ) where year(dr) between  1900  and year(date())
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34277158
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может так:
Код: plaintext
1.
UPDATE reg SET Dr = DATE(YEAR(Dr) -  100  , MONTH(Dr), DAY(Dr))
WHERE YEAR(DR) >=  2000 
С уважением, Алексей
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34277162
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упс... Not в условиях пропустил.
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34277173
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Replace all dr with CTOD(substr(dtoc(dr),1,6)+'19'+substr(dtoc(dr),9,2)) for year(dr) > 2000
С уважением, Павел
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34277676
tupoyuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное!!!!Чувствую себя полным болваном!!!!Все так просто!Спасибо!
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34277683
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, лучше использовать GoMonth().

Проблема в том, что если вырезать часть года, вычитать N лет, потом опять формировать дату, то может получиться не существующая дата из-за високосных годов. В данном случае это не грозит, но лучше сразу делать "правильно", чтобы потом не искать где же ошибся.
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34278595
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня при таких задачах всегда возникает риторический вопрос:
и почему в фоксе нет dateadd(), datediff(), возможности использования подзапросов в Having и т.д.?
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34278797
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня другой вопрос постоянно возникает: почему в фоксе люди не дают себе труда подумать и поэкспериментировать и в тупую преобразуют дату в строку? И почему оперируют только строковым представлением? И почему совершенно не пользуются встроенными средствами работы с датами? Только потому, что они представлены не так как в других системах?
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34278850
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoshaSУ меня при таких задачах всегда возникает риторический вопрос:
и почему в фоксе нет dateadd(), datediff(), возможности использования подзапросов в Having и т.д.?
1. А в каком я зыке эти команды есть (кроме T-SQL) ?
2. А кто мешает написать свои функции - аналоги dateadd(), datediff() (ну и до кучи datepart())
С уважением, Алексей.
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34279372
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoshaSУ меня при таких задачах всегда возникает риторический вопрос:
и почему в фоксе нет dateadd(), datediff(), возможности использования подзапросов в Having и т.д.?
1. dateadd: DateType+QtyDays; GOMONTH()
2. datediff: DAY(); MONTH(); YEAR()
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34279417
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[off top]
это конечно мелочи, хоть и неприятные.
а вот подзапрос в Having, select with ties очень хотелось бы увидеть.
Ладно, надо заканчивать с оффтопом, это в другой ветке ;)
[/off top]
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34279487
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoshaS[off top]
это конечно мелочи, хоть и неприятные.
а вот подзапрос в Having, select with ties очень хотелось бы увидеть.
Ладно, надо заканчивать с оффтопом, это в другой ветке ;)
[/off top]
Это называется: я знаю и люблю T-SQL, НО в ФОКСЕ почему то другие команды.
...
Рейтинг: 0 / 0
как вернуть последние цифры года из Date()
    #34279572
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, и в 10-ой версии во вкладке
What's New in Visual FoxPro
SQL Language Improvements
мы это всё увидим :)
ps
опять не удержался от оффтопа.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как вернуть последние цифры года из Date()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]