将 SQL 日期列与日期进行比较

Compare SQL date column with date

假设我将日期列值插入为

 TO_DATE('06/08/2021', 'DD/MM/YYYY')

我想在 Golang 中将此列 valid_till

进行比较
_err := database.GetDbReadClient().Raw("SELECT * from base_configs  WHERE tenant = ? AND valid_till <= ?", tenant, time.Now()).Scan(&baseConfig).Error

time.Now() 将不起作用。但我不知道如何比较日期。

我在 Postgres 中的插入是否正确? 如果是这样,我可以写什么来代替 time.Now 来与 valid_till 列进行比较?

您可以将参数转换为原始 SQL 中的 date 类型。

raw := `SELECT * FROM base_configs
WHERE tenant = ?
AND valid_till <= ?::date`

err := database.GetDbReadClient().Raw(raw, tenant, time.Now()).Scan(&baseConfig).Error

或者只是将 time.Time 实例格式化为日期 string

raw := `SELECT * FROM base_configs
WHERE tenant = ?
AND valid_till <= ?`

date := time.Now().Format("02/01/2006")
err := database.GetDbReadClient().Raw(raw, tenant, date).Scan(&baseConfig).Error