CAST for Format () DateTime to Date на SQL Server и MS Access - PullRequest
2 голосов
/ 26 октября 2011

У меня есть приложение, которое может использовать SQL Server или MS Access в качестве хранилища данных.

В одной таблице у меня есть столбец DATETIME.Я хотел бы получить значение как значение DATE (с удалением части времени).

Я могу сделать это в SQLServer с CAST () и в MS Access с Format ().В идеале я хотел бы, чтобы один SQL-запрос мог применяться к любой базе данных, а не посылать немного разные запросы к каждой базе данных.Кто-нибудь знает хитрость, чтобы сделать это?

Ответы [ 2 ]

5 голосов
/ 26 октября 2011

Использовать DATEADD / DATEDIFF

Sql Server

SELECT DATEADD("d",  DATEDIFF("d", 0, getdate()), 0) as someDateOnly

MS Access

SELECT DATEADD("d",  DATEDIFF("d", 0, Now()),0) AS someDateOnly;

Просто используйте имя поля вместо GetDate() и Now()

Например,

 SELECT DATEADD("d",  DATEDIFF("d", 0, [somefield]),0) AS someDateOnly;

, за исключением DateAdd / DateDiff - это путь, по которому вы хотите пойти, если вы все равно хотите сократить время в версиях до 2008 года.

1 голос
/ 26 октября 2011

Иногда вы запускаете доступ (например, в разработке), а иногда и сервер SQL, и хотите убедиться, что он работает на обоих?

Есть только два способа, которыми я знаю (которые не претендуют на то, чтобы быть окончательными:)).

  • создать все выборки как запросы либо в вашей sql, либо в базе данных доступа. Тогда в вашем коде вы получите доступ только к запросам
  • разработать слой базы данных, где ваши операторы будут проанализированы и
    обрабатывать каждую базу данных.

Поскольку синтаксис другой, я не знаю другого способа ...

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