当前位置: 首页 > 面试题库 >

从日期中获取布尔值在T-SQL select中进行比较

寇升
2023-03-14
问题内容

我想知道在ms-sql(2005)中是否可能遵循以下内容

SELECT (expiry < getdate()) AS Expired
FROM MyTable
WHERE (ID = 1)

我基本上想评估与布尔值比较的日期,这是否可以在语句的选择部分中进行?


问题答案:

不直接。您必须使用CASE,CAST表示客户端代码将其解释为布尔值

SELECT
    CAST(CASE WHEN expiry < getdate() THEN 1 ELSE 0 END AS bit) AS Expired
FROM
    MyTable WHERE (ID = 1)

预期一行或零行的另一种解决方案:

SELECT
    CAST(COUNT(*) AS bit) AS Expired   
FROM
    MyTable
WHERE
    ID = 1 AND expiry < getdate()


 类似资料:
  • 我正在使用CodeIgniter 3和PostgreSQL 9.4数据库。如果数据库中相应列的数据类型是布尔值,有没有办法在PHP中获取布尔值? 我使用CodeIgniters查询生成器类,如下所示: 用户表中的所有布尔值都由字符串('t'和'f')表示。

  • 问题内容: Go的布尔类型的零值为。Postgres支持未定义的BOOL类型,表示为NULL。尝试从Go中的Postgres获取BOOL值时,这会导致问题: 输出: 解决这个问题的最惯用的方法是什么?我想象的两种解决方案都不是很吸引人: 不要使用Go的类型。相反,我可能会使用一个字符串,并进行自己的转换,这占 在Postgres中,请始终通过使用或其他方式确保BOOL为TRUE或FALSE 。 问

  • 问题内容: 好的,我在代码中实现了这个SO问题:随机返回True或False 但是,我的行为很奇怪:我需要同时运行十个实例,每个实例每次运行仅返回一次true或false。令人惊讶的是,无论我做什么,每次我得到 有什么方法可以改善这种方法,以便我至少有大约50%的机会得到吗? 为了使它更易于理解:我将应用程序构建为JAR文件,然后通过批处理命令运行 程序的内容-使其尽可能简单: 如果我打开10个命

  • 问题内容: 我正在寻找最好的方法(快速而优雅)来获取python中的随机布尔值(翻转硬币)。 目前,我正在使用或。 有我不知道的更好的选择吗? 问题答案: 亚当的答案相当快,但是我发现答案要快得多。如果您真的想要布尔值而不是long值,那么 仍然是两倍的速度 两种解决方案都需要 如果最大的速度不是优先考虑的话,那么阅读肯定会更好 在看到@Pavel的答案后添加了此内容

  • 问题内容: 我在表中有字段。它包含的值为“ 2009-12-30 11:47:20:297”,我有这样的查询: 尽管今天的日期存在一行,但是在执行上述查询时我没有得到这一行。有人可以帮忙吗? 问题答案: 您的查询未返回期望的行的原因是因为GETDATE()返回了执行查询时的日期和时间部分。列中的值与时间部分不匹配,因此不会返回任何行。 有多种构造查询的方法,以便查询仅基于日期组件来评估日期。这是一

  • 我有我的科特林班 以下是我获得价值的方式 但问题是,我没有任何问题地获得了字段的价值。但是 布尔字段始终保持 null。我已经用一些其他布尔前缀,这很好。当我使用 或 时,我没有得到布尔值。任何人都可以解释我为什么我面临这个问题。#AskFirebase