powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преобразование дат
5 сообщений из 5, страница 1 из 1
Преобразование дат
    #32241495
MS_Ripped
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Можно ли, сконвертировав дату в формат yyyymmdd с помощью команды DTOS(DATE()) сделать обратное преобразование ? Я чего то не могу найти функцию обратного преобразования
...
Рейтинг: 0 / 0
Преобразование дат
    #32241526
cbani1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обратной функции для функции dtos() нету но есть обратная функция для функйии dtoc() ->ctod() но фох не рекомендует их использовать. А также в фоксе начиная с 7 версии функция Date() может иметь парамеиры т.е.

date(2003,02,25) вернет тебе дату 25 фев. 2003 г.
...
Рейтинг: 0 / 0
Преобразование дат
    #32241557
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Прямой команды для такой конвертации нет. Возможные варианты:

lcDate=DTOS(Date())

1.
?Date(VAL(SubStr(m.lcDate,1,4)),VAL(SubStr(m.lcDate,5,2)),VAL(SubStr(m.lcDate,7,2)))

2.
SET DATE TO GERMAN
?CTOD(SubStr(m.lcDate,7,2)+'.'+SubStr(m.lcDate,5,2)+'.'+SubStr(m.lcDate,1,4))

3.
SET DATE TO YMD
?CTOD(Stuff(Stuff(m.lcDate,5,0,'/'),8,0,'/'))
...
Рейтинг: 0 / 0
Преобразование дат
    #32241585
MS_Ripped
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Мне нужно было обратное преобразование для получения
даты в формате DD/MM/YYYY

Формат yyyymmdd нужен для хранения даты на MS SQL, а для отображения даты пользователю необходимо было сделать преобразование в "нормальный вид".

Написал следующую ф-ию обратного преобразования

FUNCTION FOXDATE
LPARAMETERS lcSQLDate
LOCAL lcRetVal
IF LEN(lcSQLDate) = 8
lcRetVal = RIGHT(lcSQLDate,2) + "/" + SUBSTR(lcSQLDate,5,2) + "/" + LEFT(lcSQLDate,4)
ENDIF
RETURN CTOD(lcRetVal)
...
Рейтинг: 0 / 0
Преобразование дат
    #32241587
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
5. SET DATE TO YMD
?CTOD(TRANS(DTOS(DATE()),'@R 9999.99.99'))
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преобразование дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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