问题标签 [datetime2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
stored-procedures - 将变量传递给 SQL Server 存储过程,where 子句
我正在编写一个负责归档数据的应用程序,我们在数据库表中有配置
因此,当面对这种配置时,我应该将 MetricTime 值在 3 天前之前的 DeviceData 表中的所有数据存档。
我动态执行此操作的原因是表名和列名不同(会有多行)
对于每个配置,都会调用此存储过程
还有一个示例 exec 行
这导致:
因此,我在 datetime2 中的传递方式或 where 子句的形成方式有所不同。
sql - 将自定义日期字符串转换为 SQL datetime2
我必须将 CSV 文件加载到 SQL Server 2008 中的临时表中。CSV 文件中有一个列,其中包含格式如下的日期字符串11/04/2017 at 08:24:52
。如何解析此字符串并将其插入datetime2
列中?
以下导致预期的转换错误 -Conversion failed when converting date and/or time from character string.
sql-server - SQL Server smalldatetime 与 datetime2
我已经阅读了几篇关于在 SQL Server 中使用支持日期的数据类型的文章,但我仍然不确定要使用哪种数据。
所有人都说要使用新的强大的datetime2
类型,但smalldatetime
在内存方面仍然更方便(6字节对4字节)
这是我的范围:
以这种方式定义的表:
然后我有这些要求:
对于Date
专栏,我需要精确到分钟。
在这张表中,我每天将存储多达100 万条记录,如此大的数据。
我的问题是:我必须使用smalldatetype
每天为我节省 2 mb 的旧版本吗?
或者
我应该使用新的强大的datetime2
数据类型吗?
谢谢
.net - 实体框架迁移到 datetime2
我们首先使用 Entity Framework 6 代码。我们最近决定将数据库中的 datetime 格式转换为 datetime2 格式。我们的数据库目前包含大量数据和大约 262 个表。
通过谷歌搜索,我找到了描述如何迁移到 datetime2 的答案:
所以我把这部分代码放在了OnModelCreating
方法中。然后我运行了 Add-Migration 指令,它创建了一个包含大量DropPrimaryKey
,AlterColumn
和AddPrimaryKey
行的 Up 方法,如下例所示:
然后我运行 Update-Database 推荐并收到以下错误消息:
对象“DF__AdminMessa__Date__353DDB1D”取决于“日期”列。
ALTER TABLE ALTER COLUMN 日期失败,因为一个或多个对象访问此列。
我猜这个错误是由于表的约束引起的。我知道我可以暂时禁用它们并再次运行此脚本,但随后我们将不得不在 ~262 表上手动运行禁用约束的脚本。除此之外,我不知道在使用 Code First 时运行这样的纯脚本是否可以。
是否有任何适当的方法可以将现有数据库(带有数据)迁移到 EF Code First 中的 datetime2?
sql - 如何将 '01/01/0001' 转换为 datetime2
如果值为空,我试图从 sql 中显示“01/01/0001”。但是当我将值转换为 datetime2 时,它会说:
消息 517,级别 16,状态 3,第 18 行向“datetime2”列添加值导致溢出。
这是我尝试过的:
sql - 连接日期和字符串以在 SQL 中创建日期时间
我需要将 SQL 中的日期时间和时间字段连接到单个日期时间。
例如,我的日期时间为 2017-09-05 00:00:00.000,字符串时间为 11:00。我想要的是 2017-09-05 11:00:00.000 视图中的单个字段
我尝试将日期时间转换为日期,然后将新日期和字符串日期字段连接在一起,但这不起作用。
要转换我正在使用的日期时间:CAST(dtDate AS DATE) AS dtNewDate
效果很好。然后当我使用:CAST(dtNewDate + szTime AS datetime) AS dtNewDateTime
视图的创建工作正常,但选择前 1000 个返回“从字符串转换日期和/或时间时转换失败”。
有没有更简单的方法来做到这一点,或者任何人都可以提供一些建议(除了首先将日期和时间存储在单个日期时间字段中,因为它由我无权更改的第三方应用程序填充)
sql - 将 DateTime 数据导入 DateTimeOffset
假设我有一个名为 Test 的表。测试有一个名为 CreatedDate 的列。这是创建行时的 DateTimeOffset。测试还有一个名为 ExternalDate 的列。这是通过 API 外部提供的时间。
我需要做的是计算 CreatedDate 和 ExternalDate 之间的差异。CreatedDate 是 DateTimeOffset,但 ExternalDate 始终提供为 DateTime2。提供此时间的外部系统不提供偏移或时区数据。
所以我们可以在这里看到,如果我们在 DST 中或不在一个小时内,计算可能会关闭。
不幸的是,我们正在使用 SQL2008。
我正在考虑创建一个 DST 日期表,并在迁移约会时执行连接以解决此问题,如此处另一个线程中所述。所以历史迁移是可以的。(其他线程:将 SQL 存储的 DateTime 值迁移到 DateTimeOffset 最佳实践?)
问题是,我将继续让外部系统在 DateTime2 中发送没有偏移值。我担心如果我使用同一个 DST 表的连接进行即时计算,可能会影响性能?我对 SQL 性能不太熟悉。那里的 SQL 专家对此有何看法?还是有其他更有效的方法可以即时执行此操作?
谢谢!非常感激!
sql - datetime2 的默认值
datetime2 的默认值是多少?
编辑:对不起,也许我解释错了,我试图插入 getDate() 并为我保存了这个值。
我需要知道我的 ssms 这个字段(红色字段)的值是多少
binary - 将日期时间转换为二进制数据类型 SQL Server
我有一个价值
它被迁移到列类型binary
为0x20010129131158154652000000
. 如果我们观察到它只是以 为前缀的精确值0x
,那很好。
现在,当我尝试以 6 毫秒精度插入一个应该是当前日期和时间的值时,它正在转换为十六进制值,例如0x00000000000000A87200F31D11
.
0x
请帮助我找到一个解决方案,该解决方案只需通过前缀即使 SQL Server 表列类型是二进制也应该给出相同的时间戳值。也就是说,如果我将值作为 传递2018-01-24 15:08:59.780
,它应该插入到列类型的 SQL Server 表binary(13)
中0x20180124150859780