Questions tagged «datetime»

针对包含日期和时间部分的数据类型的特定问题。

1
语言和DATEFORMAT安全哪些日期/时间文字格式?
很容易证明,由于SET LANGUAGE,SET DATEFORMAT或登录名的默认语言,除了以下两种格式外,许多其他日期/时间格式都容易引起误解: yyyyMMdd -- unseparated, date only yyyy-MM-ddThh:mm:ss.fff -- date dash separated, date/time separated by T 即使没有T的这种格式,也可能看起来像是有效的ISO 8601格式,但是它在几种语言中均失败: DECLARE @d varchar(32) = '2017-03-13 23:22:21.020'; SET LANGUAGE Deutsch; SELECT CONVERT(datetime, @d); SET LANGUAGE Français; SELECT CONVERT(datetime, @d); 结果: Die Spracheneinstellung wurde auf Deutschgeändert。 消息242,第16级,状态3国家 地图上的Eines varchar-Datentyps,日期从WereaußerhalbdesgültigenBereichs开始。 法语的最佳语言翻译。 消息242,级别16,状态3 转换日期类型为dénéesvalchar hors …

3
Access(Jet)SQL:TableB中的DateTime戳位于TableA中每个DateTime戳的侧面
第一句话 您可以放心地忽略以下(和包括)JOIN的部分:如果仅想破解代码,则从Start入手。的背景和结果只是作为背景。如果您想查看最初的代码,请查看2015年10月6日之前的编辑历史记录。 目的 最终,我想根据表中可用GPS数据的DateTime时间戳(直接在表中观察数据的侧面)来计算发射机(X或Xmit)的内插GPS坐标。SecondTableFirstTable 我的近期目标实现的最终目标是要弄清楚如何最好地加入FirstTable到SecondTable得到这些侧翼的时间点。以后,我可以使用这些信息,并假设沿着等矩形坐标系进行线性拟合,就可以计算GPS中间坐标(用奇特的话说,我不在乎地球是这个范围的球体)。 问题 有没有更有效的方法来生成最接近的前后时间戳? 由我自己解决,方法是仅抓住“之后”,然后仅获取与“之后”相关的“之前”。 是否有一种不涉及(A<>B OR A=B)结构的更直观的方法。 Byrdzeye提供了基本的替代方法,但是我的“现实世界”经验与他的所有4种执行相同策略的加入策略并不一致。但是,他对替代连接样式的解决也深表感谢。 您可能还有其他想法,窍门和建议。 到目前为止,byrdzeye和Phrancis在这方面都非常有帮助。我发现Phrancis的建议非常出色,并在关键阶段提供了帮助,因此在这里我将给予他优势。 我仍然很感激我在问题3方面能获得的任何其他帮助。项目 符号反映了我认为对个人问题最有帮助的人。 表定义 半视觉表示 第一表 Fields RecTStamp | DateTime --can contain milliseconds via VBA code (see Ref 1) ReceivID | LONG XmitID | TEXT(25) Keys and Indices PK_DT | Primary, Unique, No Null, Compound XmitID | …


6
存储DateTime的首选方式
我们可以通过两种方式存储日期和时间信息。存储DateTime信息的最佳方法是什么? 使用DateTime将日期和时间存储在2个单独的列中还是1个列中? 您能解释一下为什么这种方法更好吗? (链接到MySQL文档以供参考,该问题是一般性的,不特定于MySQL) 日期和时间类型:日期和时间

5
如何将1毫秒添加到日期时间字符串?
基于选择,我可以返回x行,如下所示: 1 2019-07-23 10:14:04.000 1 2019-07-23 10:14:11.000 2 2019-07-23 10:45:32.000 1 2019-07-23 10:45:33.000 我们所有的毫秒都为0。 有没有一种方法可以将1乘以1毫秒,因此选择如下所示: 1 2019-07-23 10:14:04.001 1 2019-07-23 10:14:11.002 2 2019-07-23 10:45:32.003 1 2019-07-23 10:45:33.004 我正在尝试创建一个游标甚至没有成功的更新。 这是获取我想要的结果的查询: select top 10 ModifiedOn from [SCHEMA].[dbo].[TABLE] where FIELD between '2019-07-23 00:00' and '2019-07-23 23:59' 有81k值。该字段是DATETIME。

1
MySQL 5.6 DateTime错误的日期时间值:“ 2013-08-25T17:00:00 + 00:00”,错误代码1292
我正在使用MySQL 5.6,并且我有一个针对我的数据库运行以下SQL语句的程序: UPDATE `m_table` SET `s_time` = '2013-08-25T17:00:00+00:00' WHERE id = '123' 不幸的是,我收到以下错误:第1行的's_time'列的日期时间值不正确:'2013-08-25T17:00:00 + 00:00' s_time的数据类型为DateTime。 我已经尝试使用工作台设置allow_invalid_dates属性。 谁能理解并请向我解释此错误?我知道,如果我手动将语句更改为UPDATE m_tableSET s_time='2013-08-25 17:00:00'WHERE id ='123',则该语句有效。 不幸的是,我无法修改提供SQL语句的程序(程序创建者告诉我该语句是有效的),并且我也无法理解+00:00的含义。 谢谢
15 mysql  datetime 


2
使用索引日期时间列的MySQL性能问题
我试图解决以下问题大约一个小时,但仍然没有解决任何问题。 好的,我有一张桌子(MyISAM): +---------+-------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+-------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | http | smallint(3) | YES | MUL | 200 | | | elapsed | float(6,3) | NO | | …


2
在数据集市/仓库中处理时区
我们正在开始设计数据集市/仓库的构建基块,我们需要能够支持所有时区(我们的客户来自世界各地)。从在线(和在书中)阅读讨论中,一个常见的解决方案似乎是在事实表中具有单独的日期和时间维度以及时间戳。 但是,我很难回答的问题是,考虑到我的动态时区要求,日期和时间维度实际上对我有什么好处?时间维度更有意义,但我在日期维度方面遇到了麻烦。日期维度的一般设计方法通常包括属性,例如天名称,星期几,月名称等。我所遇到的问题是,2013年12月31日(星期二)UTC的11:00 PM是星期三,2014年1月1日,位于UTC + 2之后的所有时区。 因此,如果我将不得不对每个查询(和报告)进行所有这些时区转换,那么拥有和存储我可能永远不会使用的这些属性(看起来像)有什么意义呢?有人建议在每个时区都有事实行,但这对我来说似乎很荒谬。我们需要每月能够存储数百万条记录。 其他人则建议有一个时区桥接表,尽管这在一定程度上是有意义的,但似乎也很复杂,需要进行额外的连接才能完成我的客户端应用程序和报告应该可以从某个日期轻松确定的事情(报告主要基于网络)那里有许多库可帮助您转换,显示和格式化日期)。 我唯一能想到的是按日期和小时分组的简便性和可能的​​性能,但实践的糟糕之处在于按日期部分分组(我们正在使用MS SQL,但我们将查询数百万行)或我们应该考虑只是非常简单的日期和时间维度,而在大多数情况下,如星期一之类的大多数文字,时,日,月和年的数字最多不超过几小时,那么在时区发挥作用时就没有多大意义了?

2
将日期时间列转换为秒数
在我的SQL Server数据库中,有一datetime列。 创建代表long该datetime列值的新列的好方法是什么?在long将表示了若干秒。 我认为,如果可以将其转换为longs,则可以更轻松地按时间段进行分组查询,因为我可以将长整数除以固定数量。 该表是静态的,不会更新或删除数据。

4
如何使用存储过程为日期范围内的每一天创建一行?
我想创建一个存储过程,该过程将在给定日期范围内的每一天在表中创建一行。存储过程接受两个输入-用户所需日期范围的开始日期和结束日期。 因此,假设我有一个像这样的表: SELECT Day, Currency FROM ConversionTable Day是DateTime,而Currency只是一个整数。 为了简单起见,我们总是希望对于每个插入的行,“货币”列为1。因此,如果有人输入“ 2017年3月5日”作为开始日期,并输入“ 2017年4月11日”作为结束日期,我希望创建以下行: 2017-03-05 00:00:00, 1 2017-03-06 00:00:00, 1 ... 2017-04-11 00:00:00, 1 对存储过程进行编码的最佳方法是什么?我在测试环境中使用SQL Server 2008 R2,但实际环境中使用SQL Server 2012,因此,如果2012年引入了新功能,可以简化此任务,则可以升级测试计算机。

1
同一列中日期的总间隔
如何最好地总结交织行之间同一列中日期范围的差异?我有一个Datetime列,想计算行之间的差异。我想以秒为单位。这个问题不是关于如何获得两个时间戳之间的差异,而是更多地集中于如何最有效地计算同一表的行之间的差异。在我的情况下,每一行都有一个datetime偶数类型,该类型将两行逻辑地链接在一起。 详细信息与如何对开始和结束事件类型进行分组有关。(Andriy M的问题)“应该”是连续的开始和结束。如果起点没有后续终点,则应将其排除在总和之外。移至下一个“开始”以查看其是否结束。仅应将连续的开始-结束对添加到总秒数之和。 在PostgreSQL 9.x中工作... 表中的示例数据; eventtype, eventdate START, 2015-01-01 14:00 END, 2015-01-01 14:25 START, 2015-01-01 14:30 END, 2015-01-01 14:43 START, 2015-01-01 14:45 END, 2015-01-01 14:49 START, 2015-01-01 14:52 END, 2015-01-01 14:55 注意,所有开始日期和结束日期将是连续的。 这是我的第一次尝试。似乎正在工作。 SELECT -- starts.* SUM(EXTRACT(EPOCH FROM (eventdate_next - eventdate))) AS duration_seconds FROM ( WITH x AS ( …


1
为什么GETUTCDATE早于SYSDATETIMEOFFSET?
另外,Microsoft如何使时间旅行成为可能? 考虑以下代码: DECLARE @Offset datetimeoffset = sysdatetimeoffset(); DECLARE @UTC datetime = getUTCdate(); DECLARE @UTCFromOffset datetime = CONVERT(datetime,SWITCHOFFSET(@Offset,0)); SELECT Offset = @Offset, UTC = @UTC, UTCFromOffset = @UTCFromOffset, TimeTravelPossible = CASE WHEN @UTC < @UTCFromOffset THEN 1 ELSE 0 END; @Offset设置在之前 @UTC,但有时值更高。(我已在SQL Server 2008 R2和SQL Server 2016上尝试过此操作。您必须运行几次以捕获可疑事件。) 这似乎不只是舍入或缺乏精度的问题。(实际上,我认为四舍五入是偶尔“解决”该问题的原因。)样本运行的值如下: 偏移量 2017-06-07 12:01:58.8801139 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.