почему в случае сбоя при изменении даты

Мне нужно вернуть 1 между 1-м и 14-м и first day of next month для любого другого, исходя из текущего дня.

Я могу запустить очень простой случай, когда оператор:

 select case when datepart(d, getdate()) between 2 and 14 then '1' else '1st next month' end 

который возвращает 1 или 1 следующий месяц, как и ожидалось, и я также могу получить фактический первый день следующего месяца легко:

 select DATEADD(d, 1, EOMONTH(getdate())) 

но когда я его совмещаю. Он ничего не возвращает – нет ошибок и никаких результатов независимо от того, какой день сегодня

 select case when datepart(d, getdate()) between 2 and 14 then '1' else DATEADD(d, 1, EOMONTH(getdate())) end 

вы знаете, почему?

Чтобы избежать несоответствия типов данных, выведите их как текст:

 select case when datepart(d, getdate()) between 2 and 14 then '1' else convert(varchar, DATEADD(d, 1, EOMONTH(getdate())),120) end 
Interesting Posts

Дата и время MSSQL до даты SOLR с использованием ColdFusion

SQL Выберите «n» записи без таблицы

Разделить строки и числовые столбцы

Поместите строку с ведущими нулями, так что она длится 3 символа в SQL Server 2008

Недопустимое имя столбца при обновлении sql-сервера после создания столбца

Как переименовать экземпляр SQL Server Express по умолчанию?

Вставить в запрос, вставляя нуль в 1-й столбец вместо данных в указанный столбец

Обновление последней записи для каждого ключа – SQL

Более эффективная двойная совместная совместная альтернатива

Как передать значение GUID в оператор SQL SQL INSERT объекта SqlCommand?

Рекомендации для хороших примеров / образцов служб интеграции SQL Server (SSIS) для ETL?

Найти ошибки SQL-запросов без выполнения SQL-запроса на SQL-сервере

Выбор одной из многих одинаковых строк с определенным условием

Сохраненная процедура для вызова другой хранимой процедуры на основе параметра

Как создать постоянную таблицу с использованием значения переменной в качестве имени таблицы

Давайте будем гением компьютера.