从天数数组中获取天数[重复]

Posted

技术标签:

【中文标题】从天数数组中获取天数[重复]【英文标题】:Get Day from array of days [duplicate] 【发布时间】:2019-06-13 08:28:20 【问题描述】:

我正在尝试在一长串日期 (TxnDate) 中捕获一周中的特定日期。我正在使用的以下命令引发以下错误:

列名“TxnDay”无效。

代码

Select DATENAME(dw, ft.[TxnDate]) as TxnDay, ft.[ProductCode], ft.[Site] from dbo.FactTransactions as Ft 
Where ft.[Site] = '1' and TxnDay = 'Tuesday'

编辑:我也尝试了以下错误:

列名“TxnDay”无效。

Select ft.[TxnDate], ft.[ProductCode], ft.[Site] from 
dbo.FactTransactions as Ft
Where ft.[Site] = '1' and ft.[TxnDate] in (SELECT DATENAME(dw, ft. 
[TxnDate]) as TxnDay where TxnDay = 'Sunday')

【问题讨论】:

消息很清楚。表/视图FactTransactions 上是否存在列TxnDay?您的日期解析不是这里的问题。 @EzLo No TxnDate 变为 TxnDay 在这两种情况下,您都在通过 TxnDay 对您的 WHERE 进行过滤,您应该重复您在选择时使用的相同表达式以改为 TnxDay @EzLo 是的 - 确实是重复的! Select DATENAME(dw, ft.[TxnDate]) as TxnDate, ft.[ProductCode], ft.[Site] from dbo.FactTransactions as Ft Where DATENAME(dw, ft.[TxnDate]) = 'Tuesday' 【参考方案1】:

除非我遗漏了什么,否则我不确定你是否需要 WHERE 子句中的子查询 - 你不能这样做:

select 
    ft.[TxnDate], 
    ft.[ProductCode], 
    ft.[Site] 
from dbo.FactTransactions as ft
Where 
    ft.[Site] = '1' 
    and DATENAME(dw, ft.[TxnDate]) = 'Sunday'

【讨论】:

【参考方案2】:

嗨,不要在 where 子句中使用列的别名。解决方案如下。

 Select DATENAME(dw, ft.[TxnDate]) as TxnDay, ft.[ProductCode], ft.[Site] from 
  dbo.FactTransactions as Ft 
  Where ft.[Site] = '1' and DATENAME(dw, ft.[TxnDate])= 'Tuesday'

【讨论】:

以上是关于从天数数组中获取天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

HIVE一个月中的天数[重复]

计算剩余天数[重复]

PHP:以YYYY-MM-DD格式获取两个日期之间的天数[重复]

从日期中添加或减去天数时如何避免周末或节假日[重复]

计算textview中经过的天数[重复]

Python:我有一个日期列表。我想计算到当前日期的天数[重复]