2014-11-27 2 views
0

В настоящее время я использую Visual Web Developer 2010 (Express), и я пытаюсь использовать команду NOW() в SQL-запросе, чтобы разрешить выбор даты, но он не работает на случайные времена, и я проиграл, почему он это делает.ASP + SQL Server + NOW() = Головная боль

Я приведу несколько примеров, я из Великобритании, моя машина настроена на стандартное время (синхронизация с time.windows.com), и все в порядке, но когда я использую = NOW(), он работает, но когда он не работает, т, кажется, дата ввода перемешивается, пример ниже:

в настоящее время мой стол устанавливается следующим образом:

Таблица crew_example:

Column 1 : Date (In standard SQL time, so YYYY-MM-DD) 
Column 2 : Initial 
Column 3 : Surname 
etc 

Мой SQL запрос следующим образом:

Эта функция работает нормально и в настоящее время работает с другим SQL-запросом, который пользователи BETWEEN (DATE = { fn NOW() } + 1) AND { fn NOW() } + 6) (У меня были проблемы, когда я задавал это раньше, но он волшебным образом фиксировал себя и никогда ничего не думал об этом).

Выходной день, когда я жёстко не работает, если я использую сегодняшнюю дату 27/11/2014, но работает, когда я «americanise» его 11/27/2014 даже если выход идет в формате Великобритании 27/11/2014 00:00:00

Есть ли способ унифицировать даты? Я новичок в SQL-запросах, поэтому не использую, если я могу использовать команду NOW(), но изменить ее на NOW() в формате MM/DD/YYYY вместо того, что выглядит NOW(), используя мой тип даты в Великобритании.

EDIT: Похоже, CURRENT_DATE может работать .... но любые идеи, если это лучший способ?

С уважением Джейми

+0

Какой диалект SQL? T-Sql, MySql-Sql? nvm не видел тег. –

+0

Current_date() кажется, работает в течение 30 секунд, но теперь умер, когда я попытался добавить еще один фильтр ... – JamieB

+0

Я чувствую, что должен знать это, но я не могу ответить на него так, как я бы не знал .. SQL Server - это Microsoft SQL Server через Visual Web Developer курс даты через проводник говорит: «Microsoft SQL Server (SqlClient)» – JamieB

ответ

2

В T-SQL Я хотел бы использовать что-то вроде этого:

Where Date between cast(getdate() as date) and cast(dateadd(d,1,getdate()) as date) 

Я никогда не использовал «чистый» столбец даты, так что я не уверен, что если вам нужно чтобы избавиться от времени с актерским составом.
Для DateAdd() см: DATEADD (Transact-SQL)
Для броска() см: CAST and CONVERT (Transact-SQL)

+0

Простите мою новичку здесь, но как я могу ее построить в уже построенном запросе? Например, запрос выше, когда я использую ваш код, я получаю следующую ошибку: «Плохо сформированная функция трансляции». – JamieB

+0

Sry, последний кастинг был неправильным, я забыл «как дату» ^^ ' –

+0

Вы, сэр, бог среди мужчин. Спасибо, будет ли это работать с чем угодно, если вы измените бит «как DATE» на столбец даты?Так что, если моя дата Колонку Date_Current Было бы: 'Где date_current между броском (GETDATE(), как date_current) и литые (DateAdd (d, 1, GETDATE()), как date_current)' или 'Где Date_current между cast (getdate() в качестве даты) и cast (dateadd (d, 1, getdate()) в качестве даты) ' – JamieB