Использование зарезервированного слова TimeStamp в качестве имени поля (Firebird 2.5)

StackOverflow https://stackoverflow.com/questions/1800841

  •  05-07-2019
  •  | 
  •  

Вопрос

Я расширяю уровень данных существующего приложения для работы с Firebird 2.5 в дополнение к MSSQL и SQLite, но наткнулся на камень преткновения.

У меня есть поле TimeStamp, в котором хранятся данные/время как тип TimeStamp.Это отлично работает в MSSQL и SQLite, где типом является datetime, но не работает в Firebird.Следующий SQL:

SELECT SysTrnId,'TimeStamp' from "TRANSACTIONS"

на первый взгляд работает, но поле TimeStamp возвращается как имя поля «CONSTANT», а содержимым является текст «метка времени».

Можно ли это сделать в Firebird, или мне придется переименовать поле и изменить код в других слоях данных.

Это было полезно?

Решение

Экранирующий символ firebird - это двойная кавычка " . Обратите внимание, что в Firebird, если у вас есть поле, которое вы должны экранировать двойными кавычками, оно также становится чувствительным к регистру. Итак, если вы объявили свое поле как TimeStamp , тогда выберите " TIMESTAMP " ... завершится ошибкой с полем не найден

Другие советы

Я понятия не имею, работает ли это, но вы пробовали двойные цитаты вокруг «TimeMant», отдельные кавычки обычно указывают на постоянную строку.

С уважением
К

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top