Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: SQL запрос для работы с Date Добавлено: 29.03.12 13:34  

Автор вопроса:  Vitalysan®
Доброго времени всем!
Есть поле "ДАТА" в формате "хх.хх.хххх"
Как SELECTом отобрать только те значения, которые соответствуют текущему кварталу?
Заранее благодарен

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 29.03.12 15:09
Смотря какая у тя СУБД))

* MySql есть SELECR QUARTER(NOW())
* В остальных можно попробовать повычислять http://stackoverflow.com/questions/1802855/returning-the-quarter-in-sql-server

Ответить

Номер ответа: 2
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #2 Добавлено: 29.03.12 15:26
Спасибо, сейчас почитаю!
СУБД - Акцесс

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 30.03.12 20:01
http://www.techonthenet.com/access/functions/date/datepart.php

Ответить

Номер ответа: 4
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #4 Добавлено: 30.03.12 21:48
По логике понятно, что запрос ошибочный, но на всякий случай проверил:
.Open "Select * FROM Table WHERE " & DatePart("q", [Date];) = 1 & "", connect, adOpenStatic, adLockOptimistic

...и точно, чушь!)))
а как сделать запрос, используя VB-функции DatePart, DateAdd или DateDiff - ну никак не дойду(((
уже тупо прописывал
.Open "Select * FROM Register WHERE [&#207;&#238;&#235;&#229;1] < #01/04/2012#", connect, adOpenStatic, adLockOptimistic

но получаю не тот результат(((

Ответить

Номер ответа: 5
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #5 Добавлено: 30.03.12 21:50
  1. .Open "Select * FROM Register WHERE [Date] < #01/04/2012#", connect, adOpenStatic, adLockOptimistic

Ответить

Номер ответа: 6
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #6 Добавлено: 31.03.12 09:08
До этого я обходился таким образом:
  1. .Open "Select * FROM Table", connect, adOpenStatic, adLockOptimistic
  2. Do While Not .EOF
  3. If DatePart("q", .Fields("Date")) <= 1 Then i = i + 1
  4. .MoveNext
  5. Loop
  6. .Close

сейчас мне этот вариант не подходит(

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 31.03.12 17:56
Никогда не передавай никаких параметров в SQL запрос напрямую. Это плохой тон. Даже int. Всегда используй SqlCommand.Parameters, он избавит тебя от головной боли об SQL-инъекциях, передачи байт-массивов, формата даты-времени и т.п.

Ответить

Номер ответа: 8
Автор ответа:
 Vitalysan®



Вопросов: 25
Ответов: 61
 Профиль | | #8 Добавлено: 01.04.12 15:15
Я впервые слышу об SqlCommand.Parameters. Возможно это в .Net, а я пишу на VB6.

Ответить

Номер ответа: 9
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #9 Добавлено: 01.04.12 19:50
Там они тоже должны быть. Иначе, это полный бред, а не то-чем-ты-там-пользуешься-для-коннекта-к-бд.

Ответить

Номер ответа: 10
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 01.04.12 22:53
AgentFire, боюсь ты не прав.. посмотри модель DAO или ADO(что там еще юзают в 6ке для работы с данными).. там этого скорее всего не будет.

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 02.04.12 21:57
Ну, это же печально.

Ответить

Номер ответа: 12
Автор ответа:
 К0ВAЛЄHK0



Вопросов: 0
Ответов: 22
 Профиль | | #12 Добавлено: 21.08.12 14:24
Так в чем проблема то, собственно

Ответить

Номер ответа: 13
Автор ответа:
 К0ВAЛЄHK0



Вопросов: 0
Ответов: 22
 Профиль | | #13 Добавлено: 21.08.12 14:24
Так в чем проблема то, собственно

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам