|
|
1
10
与其编写函数,不如创建一个包含描述和数字值的星期表。然后您可以简单地联接到表中以获得数字。 如果您有多个存储方式(可能在基于字符的系统中),那么您可以将所有变量放入表中,因此周二和周二都将映射到相同的整数。 |
|
|
2
10
不幸的是,没有内置函数,但您可以这样创建自己的函数:
|
|
|
3
2
六年后,还有几个版本的SQL Server,但是仍然没有内置的功能来完成这个任务(据我所知)。不确定是否 sql-server-2014 做点什么。
我对@russbradberry采取了类似的方法
或者也可以这样做,因为一旦遇到匹配,它会立即返回值,而不会尝试评估其他值,所以速度可能会快一点。
|
|
|
4
2
如果我不在海量数据集上运行它,这里有一个脏的替代方法。
只需将星期四替换为您选择的日期或变量。 工作原理:substring(“thursday”,1,3)基本上创建了thu,然后charindex找出thu在字符串中的位置,即10。然后我们用10除以一天中的单词长度,3等于3,因为我想要 星期一等于1 星期二等于2 星期三等于3 星期四等于4 最后加1 结果是4。 希望能帮助别人,但我同意这可能不是最好的解决办法。 注意:您也可以按天编号订购结果集,方法如下:
|
|
|
5
1
可以使用以下选项获取ISO工作日序号
|
|
|
6
0
我不同意添加查阅表格的答案,因为在这种情况下,值是有限的,永远不会改变。查阅表格联接只会增加成本。 imho;因为您的值有限,所以我只在视图中使用case语句。它不漂亮,但可能是最快的方法。 |
|
|
7
0
这可能不是一个实际的目的,但我想我会想出来只是为了好玩。:)以下工作。 请记住,当使用datepart或datename时,@datefirst的值很重要,可以更改结果。在联机帮助中查找“设置日期优先”。
|
|
|
8
0
在哪里?
将dayid添加到一些基准日期,如1899-12-31。(如果星期日是星期一的第一天,则使用1899-12-30的初始日期)
因此:
|
|
|
9
0
在SQL 2014中,您可以使用: 选择datepart(dw,getdate())这将以整数形式返回星期几。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 10 月前 |
|
|
Nebula Tech · 在SQL Server中搜索字符串中单词的多次出现 10 月前 |
|
Marc Guillot · 记录值时忽略冲突 10 月前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 10 月前 |
|
|
GH DevOps · 多对多关系中同类型的SQL Server关系表设计 10 月前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 10 月前 |