Як в Delphi7 SQL-запиті зробити умова з використанням функціонально
Як в Delphi7 SQL-запиті зробити умова з
використанням функції: є поле Date (формату "DD.MM.YYYY") - в ньому дати. Потрібно відібрати записи, у яких місяць = поточному.
Підкажіть, будь ласка, як це зробити.
where to_char (DATE) like "% .08.%"
ну і замість 08 підставляй номер поточного місяця
для MSSQL:
where month (date) = month (getdate ())
або
where datepart (mm, date) = datepart (mm, getdate ())
цей запит можна використовувати в Дельфах для MS SQL Server (там є ф-я Month).
SELECT * FROM Table WHERE Month (DATEFIELD) = Month (: date)
Перепрошую, не зовсім запрацювало - пише, що Invalid use of keyword month (Date)
Замість date треба написати ім'я поля. Якщо поле називається date, треба його перейменувати - не варто використовувати зарезервоване слово в якості ідентифікатора.
вся справа в чарівних бульбашках, без них ні один запит не запрацює.
і зовсім не залежить від типу SQL server-а (скажуть таке не вір!).
p.s. бульбашки продаються практично в будь-якому магазині.
Природно, поле називається у мене "BirthDate"
в запиті у мене було так:
where month (BirthDate) = month (getdate ())
DVP1 (21.08.03 11:27) [11]
см. [6]
ЗИ:
- доктор мене всі ігнорують.
- наступного
; Про (((
нє здогадався. тоді з сумом маю вам повідомити - завдання в вашому виконанні не має рішення.
To Семен Сорокін:
SQL-server відсутня, а яке СУБД треба, власне кажучи, замість SQL-server "a?
Спеціально СУБД не встановлювали, а працюю я з dBase.
попрообуй, начебто xBase підтримує month і date
where month (BirthDate) = month (date ())
Знову пише що Invalid use of keyword month (BIRTHDATE),
а причому тут xBase? - до 1С ця програма ніяк не відноситься
як варіант:
where birthdate>: date1 and birthdate <:date2
де date1 - останнє число попереднього місяця, а date2 - перше число наступного місяця :))
> Спеціально СУБД не встановлювали, а працюю я з dBase.
ну хоч щось конкретне, можна ще припустити що використовується BDE, і послати. в Local SQL help. ; О))
де знайдеться приблизно наступне
SELECT DOB, LastName, FirstName
FROM People
WHERE (EXTRACT (MONTH FROM DOB) = 5)
(Можеш використовувати, копірайтів немає; о)))
WHERE (EXTRACT (MONTH FROM BIRTHDATE) = 5) - так працює, але у мене замість "5" повинен бути поточний місяць-як його отримати в запиті?
передавай значення з Дельфах (наприклад параметром), в Local SQL немає функції поточної дати.
(Можна звичайно по іншому, поміняти движок на Jet наприклад, там є, але чи варто?)