powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / DateTime + SQL + C++
5 сообщений из 5, страница 1 из 1
DateTime + SQL + C++
    #33186579
Heart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполняю некоторый запрос SQL
По результатам запроса получаю данные в виде char* _pData

затем, зная типы данных и размеры, начинаю разбирать эту строчку.

int, double, string - все понятно.

index = 0;
char* _pData = ...;
for(int i = 0; i < countColumn; i++)
{
...
switch(_DataType)
{
...
case typeInt:
{
int intVal = *(int*)(&_pData );
}
break;
case typeDouble:
{
double dblVal = *(double*)(&_pData);
}
break;
case typeString:
{
CString str;
str.SetString((wchar_t*)(&_pData);
}
break;
case typeDateTime:
{
?????????????????
}
break;
...
}
}

как принять дату?
...
Рейтинг: 0 / 0
DateTime + SQL + C++
    #33186587
Heart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дополнение дата там хранится в таком виде:

2001-12-12 00:00:00
...
Рейтинг: 0 / 0
DateTime + SQL + C++
    #33186632
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример (хоть и юзаеться ODBC)...

lRet = ::SQLGetData(m_hstmt, nField, SQL_C_TIMESTAMP,
&tsValue, sizeof(tsValue), &nValueLen);
CheckAndThrowOPException(lRet, _FLT_, m_strQuery);
if(pblIsNull != NULL)
{
*pblIsNull = (nValueLen == SQL_NULL_DATA);
}
if(nValueLen == SQL_NO_TOTAL)
{
ASSERT(FALSE);
TCFireException(NULL, TCErrorDB().m_Recordset.FieldLengthMismatch(), _FLT_);
}

if(nValueLen != SQL_NULL_DATA)
{
rValue = CTime(tsValue.year, tsValue.month, tsValue.day,
tsValue.hour, tsValue.minute, tsValue.second);
}
else
{
rValue = NULL;
}

-----------------
в последних строчках видно, что юзаеться CTime. Значения год, месяц и т.д. в твоём случае нужно будет распарсить и привести к значениям ручками.


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
DateTime + SQL + C++
    #33186711
Heart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось.

вот так:

case typeDateTime:
{
tagTIMESTAMP_STRUCT tim = *( tagTIMESTAMP_STRUCT *)(&_pData );
}
break;
...
Рейтинг: 0 / 0
DateTime + SQL + C++
    #33201955
Фотография Macks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Heartдополнение дата там хранится в таком виде:

2001-12-12 00:00:00

Дата хранится во внутренем формате, в запросе можно указать любой тип вывода.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / DateTime + SQL + C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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