确定夏令时是否有效? SQL服务器

2024-01-08

我有一个包含用户、UTC 时间偏移以及他们是否遵守夏令时的表。是否有内置方法可以获取正确的用户时间?


这并非在所有情况下都有效,但对于美国 DST 定义为 3 月第 2 个星期日到 11 月第 1 个星期日之间的用户来说,这是一个快速解决方案。

DECLARE @Date datetime2 = '2018-11-04 02:01:00'

SELECT 
    CASE 
        WHEN @Date between
            DATETIMEFROMPARTS(YEAR(@Date), 3, (8 - DATEPART(WEEKDAY, DATEFROMPARTS(YEAR(@Date), 3, 1))) + 8, 02, 00, 00, 00)
            and
            DATETIMEFROMPARTS(YEAR(@Date), 11, (8 - DATEPART(WEEKDAY, DATEFROMPARTS(YEAR(@Date), 11, 1))) + 1, 02, 00, 00, 00)
        THEN 1
        ELSE 0
    END --Is it dst?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定夏令时是否有效? SQL服务器 的相关文章

  • 从 SQL Server 2012 查询结果中减去小时数

    我正在 SQL Server 2012 Management Studio 中的警报系统信号自动化平台数据库上运行查询 但遇到了一些问题 我的查询运行得很好 但我无法将结果细化到我想要的水平 我正在选择一些格式为的列DATETIME 我只想
  • Oracle SQL——从字符串中删除部分重复项

    我有一个表 其中有一列包含字符串 如下所示 static text here 1abcdefg1abcdefgpxq 从这个字符串1abcdefg重复两次 所以我想删除该部分字符串 然后返回 static text here 1abcdef
  • 标记个体内事件发生后发生的日期

    我有一组长格式的数据 每人几行 人 id 其中事件 事件 1 应该只发生一次 事件发生后 该人不应再有任何数据 如果事件发生后出现任何记录 我想使用名为 flag flag 1 的新变量创建一个查询 例如 下面标记了 id 5 因为在该人的
  • 仅从数据库获取我想要的数据但保留结构

    我正在尝试在 powerbi 上执行此操作 但我想这只是基本的 SQL 我想将我的数据导入到 powerBi 中 但使用一些 id 对其进行过滤 我们以这个例子为例 我与一些公司有数据库 表1 每个公司都有建筑物 表2 每个建筑物有员工 表
  • play20 ebean 生成的 sql 在 postgresql 上抛出语法错误

    我正在尝试使用 postgresql 来启动我的 play20 应用程序 以便我可以使用并稍后部署到 Heroku 我跟着这个answer https stackoverflow com questions 12195568 errors
  • SQL:比较不同表中的两个计数

    我有 3 张桌子 一张桌子上有世界上每个国家及其代币 NAME CODE Afghanistan AFG Albania AL Algeria DZ American Samoa AMSA Andorra AND Angola ANG An
  • Oracle 获取列值发生变化的行

    假设我有一张桌子 比如 ID CCTR DATE 1 2C 8 1 2018 2 2C 7 2 2018 3 2C 5 4 2017 4 2B 3 2 2017 5 2B 1 1 2017 6 UC 11 23 2016 还有其他字段 但我
  • 基于列顺序的查询速度

    数据库中列类型的顺序对查询时间有影响吗 例如 具有混合排序 INT TEXT VARCHAR INT TEXT 的表的查询速度是否会比具有连续类型 INT INT VARCHAR TEXT TEXT 的表慢 答案是肯定的 这确实很重要 而且
  • 返回行位置 - Postgres

    我返回一个带有位置的表 select from select row number over as position from organization result where data1 Hello 返回这个 这是正确的 data1 H
  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • 获取查询的行号

    我有一个查询将返回一行 当表排序时 有什么方法可以找到我正在查询的行的行索引吗 我试过了rowid但当我期待第 7 行时却得到了 582 Eg CategoryID Name I9GDS720K4 CatA LPQTOR25XR CatB
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • PreparedStatement setnull方法中Types.INTEGER和Types.NULL的区别

    下面的说法有什么区别 PreparedStatement setNull 1 java sql Types NULL and PreparedStatement setNull 1 java sql Types INTEGER 第一个指示驱
  • Postgres、更新和锁定顺序

    我正在研究 Postgres 9 2 有 2 个更新 每个更新都有自己的事务 一个看起来像 UPDATE foo SET a 1 WHERE b IN 1 2 3 4 另一个也类似 UPDATE foo SET a 2 WHERE b IN
  • Quartz.NET 设置 MisfireInstruction

    我正在使用 Quartz NET 在 C 中工作 并且在 CronTrigger 上设置失火指令时遇到问题 我正在运行安装了 Quartz DB 的 SQL 后端 我有以下代码 可以很好地创建作业和运行调度程序 IScheduler sch
  • 如果执行没有事务的删除语句,是否会删除部分内容?

    如果表myTable包含100000000条记录 我执行DELETE FROM myTable 没有开始交易并且出现问题 例如服务器电源故障 会删除一些记录吗 否 如果数据库引擎符合ACID http en wikipedia org wi
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • 在存储过程结束时显式删除本地临时表有什么好处?

    考虑以下伪 T SQL 代码 由存储过程执行 CREATE TABLE localTable

随机推荐