Вставьте значение даты и времени в таблицу SAS с помощью C # .NET OLEDB SQL - PullRequest
0 голосов
/ 03 августа 2011

Описание: У меня есть код C #, который создает новую таблицу на моем SAS-сервере с использованием OLEDB:

"CREATE TABLE SASUSER." + tableName + " (time DATETIME, value NUM)";

Затем он использует цикл FOR для добавления некоторых значений из a.NET DataSet.time - это DateTime объект, а value - это просто Double.:

"INSERT INTO SASUSER." + tableName + " (time, value) VALUES (" + time.Ticks + " , " + value + ")"

Потребовалось какое-то случайное предположение, чтобы выяснить, что столбец времени будет принимать только числа, а не типичную строку даты (например, «06/26/11 13:24:11»).

Проблема: Несмотря на то, что для столбца времени был указан DATETIME, отображается только дата (мм / дд / гггг), а не время.Например, если я заменю «time.Ticks» на 10 или 10,5, то 1/11/1960 будет сохранено в значение времени.Это число интерпретируется как число дней с 1 января 1960 года, когда оно должно интерпретироваться как число секунд с полуночи 1/1/1960 года.

Примечания: Я являюсьиспользуя OLEDB с поставщиком SAS SAS.IOMProvider.Когда я добавляю значение времени, я знаю, что должен конвертировать тики в тики SAS (количество секунд с полуночи 1 января 1960 года) - я просто взял дополнительные вычисления, чтобы их было легче читать.

Обходной путь: Я использую таблицу шаблонов на сервере SAS с правильно отформатированными столбцами.Я просто делаю копию этой таблицы и копирую свои данные в копию шаблона.Это не идеально, но это поможет быстро исправить ситуацию.

1 Ответ

0 голосов
/ 03 августа 2011

Я не уверен насчет C #, так как я знаком только с VB.

В VB: ВСТАВИТЬ В СТОЛОВЫЕ ЗНАЧЕНИЯ ('' & ФОРМАТ (yourdatetime, "гггг-мм-дд ЧЧ: мм: сс") &"')

Попробуйте обратиться к здесь и изменить его на C #.

Моё простое предположение: INSERT INTO TABLE VALUES ('" & String.Format ("{0: гггг-мм-дд чч: мм: сс} ", ваше время) &" ')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...