Цель состоит в том, чтобы по умолчанию заполнить все поля ввода запроса '%'
и позволить пользователю вводить реальные значения там, где они хотят. Однако это вызывает проблему для поля DATE/TIME
. Я получаю ошибку: Conversion failed when converting date and/or time from character string.
Как я могу достичь эквивалента '%'
, но для дат?SQL: Каков эквивалент «%» для даты/времени?
DECLARE @trans_date datetime = '%'
SELECT
t.lp_num,
t.trans_date
FROM ISW_LPTrans AS t
WHERE t.trans_date = @trans_date
Edit: - Убрана LIKE
и заменены =
, потому что люди держали слишком фокусируются на том, что и это не в центре внимания этот вопрос.
Если itrans_date является дата-временем, и его следует рассматривать как таковой, ищите даты * диапазоны *, используя BETWEEN/DATEDIFF/DATEPART и т. д., вам нужно было бы отнести столбец к типу символа, который неэффективен и не слишком полезен для большинства сценариев поиска. –
Как пользователь вводит данные? Это из внешнего источника или непосредственно внутри СУБД? Я не уверен на 100% в 2008 году, но я использую 2014, и вы можете использовать LIKE '%' непосредственно с датой. Проблема в том, что вы пытаетесь сохранить строку «%» в качестве даты. Когда вы используете LIKE, он относится к нему по-разному (по сравнению с использованием знака =). – CodyMR
@ Cody360c будет через интерфейс Report Builder 3.0. Так через отчет. – whatwhatwhat