Devo estar perdendo alguma coisa em algum lugar..
SQL do Azure
DispatchedOn is a DateTime column
ALTER TABLE [table] WITH CHECK ADD CONSTRAINT [CK_ReportDate6MonthRollGreater] CHECK ((CONVERT([date],[DispatchedOn])>='2022-12-07'))
GO
ALTER TABLE [table] CHECK CONSTRAINT [CK_ReportDate6MonthRollGreater]
GO
Posso inserir uma data de 2022-12-01
O SQL Server permitirá a inserção de datas que violem a
CHECK
restrição quando aCHECK_CONSTRAINTS
opção for omitida de umBULK INSERT
destino T-SQL , BCP in ou SSIS. Além disso, a restrição é marcada como não confiável após a operação para indicar que os dados existentes podem violar a restrição.Execute esta consulta para verificar se a restrição é confiável e habilitada:
As strings '2022-12-07' e '2022-12-01' em seus exemplos são ambíguas.
Por exemplo:
A renderização também depende das configurações do cliente, como o idioma do sistema operacional.
Pode haver alguma combinação de configuração de idioma ou formato em seu banco de dados ou cliente de exibição que permite a combinação mostrada. Por exemplo, 1º de dezembro de 2022 é legitimamente após 12 de julho de 2022.
Para evitar esses problemas, sempre use
CONVERT
um estilo determinístico ao converter datas e horas de ou para um formato de string.Isso está documentado na conversão não determinística de strings de datas literais em valores DATE
Exemplo:
Há motivos para duvidar que essa seja a causa em seu caso específico, tornando a resposta de Dan mais provável, mas ainda é uma prática recomendada e ajudará você a eliminar uma possível fonte de confusão.