我在SQL Server
2005中使用datetime字段遇到了一个奇怪的错误。datetime字段以毫秒级的精度显示,但看起来并不总是使用毫秒。这是我的测试查询:
SELECT col1, YEAR(col1) AS yr, MONTH(col1) AS mn, DAY(col1) AS dy
FROM mytable
WHERE col1 >= '2009-12-31 00:00:00.0' AND col1 <= '2009-12-31 23:59:59.999'
ORDER BY col1
在我的结果中,我得到:
col1 | yr | mn | dy
---------------------------- + ------ + ---- + ----
2009-12-31 00:00:00:00.000 | 2009 | 12 | 31
2010-01-01 00:00:00:00.000 | 2010 | 1 | 1个
问题是我的日期是2010年1月1日,即使该日期不能小于或等于“ 2009-12-31 23:59:59.999”。但是,如果我将查询更改为使用“
2009-12-31 23:59:59.99 8 ”,则它可以正常运行(不返回2010日期时间)。
这是Bug,还是SQL
Server的工作方式?如果这是它的工作方式,那么有什么理由吗?我遇到了从MySQL迁移一些查询的问题,该查询可以按预期运行(即使MySQL甚至不存储毫秒!)。
SQL Server
将时间部分存储为1/300
从午夜起的第二个长滴答声的数量。
23:59:59.999
将四舍五入到00:00:00.000
第二天的最接近刻度。
SELECT CAST(CAST('2009-12-01 00:00:00.000' AS DATETIME) AS BINARY(8)),
CAST(CAST('2009-12-01 23:59:59.997' AS DATETIME) AS BINARY(8)),
CAST(CAST('2009-12-01 23:59:59.999' AS DATETIME) AS BINARY(8))
0x00009B8F 00000000 0x00009B8F 018B81FF 0x00009B90 00000000
在第一个值中,日期部分0x9B8F
(39823
)是自以来的天数,Jan 1st, 1900
时间部分0
是自午夜以来的滴答数。
在第二个值中,0x018B81FF
(25919999
或24 * 60 * 60 * 300 - 1
)是自午夜以来的最大滴答数。
最后,第三个值0
在时间部分和日期部分增加了一个。
问题内容: 我已使用ruby脚本将iso时间戳转换为纪元,我正在解析的文件具有以下时间戳结构: 由于我想保留毫秒,因此我使用了以下Ruby代码将其转换为纪元时间: 但是在python中,我尝试了以下操作: 但是我没有把原定的时间日期倒退, 我想知道这与我的格式化方式有关吗? 问题答案: 用途: 指令仅受支持,而不受。 UPDATE 替代使用,:
问题内容: 我可以通过java.util.Date(milliseconds)在Java中创建类似的Date对象。如何在Python中创建可比对象? 分配一个Date对象,并将其初始化为表示自标准基准时间(即“纪元”)(即GMT 1970年1月1日)以来指定的毫秒数。 问题答案: 只需将其转换为时间戳
问题内容: 我将当前时间(UTC)以纳秒为单位,然后需要以纳秒为单位,然后返回本地时间。我能够将时间缩短到十亿分之一秒,然后再返回到日期字符串,但是当我从字符串转到日期时,时间变得很复杂。 //时间戳正确,但返回的日期不正确 问题答案: 我不明白您为什么要对字符串做任何事情…
问题内容: 我在Oracle 中将MSSTAMP设置 为“带有毫秒的时间戳”,格式:1483228800000。如何将该毫秒时间戳转换为日期格式“ YYYY- MM”,以便获得前几年每月的已完成行数。 我尝试了TO_DATE,CAST,TO_CHAR的不同变体-但无法正常工作。 问题答案: 如果您只需要将自纪元以来的毫秒数转换为日期,则: 哪个输出: 您只需要年月,然后使用或即可。 如果您需要处理
问题内容: 在我可以设置例如 是否有任何符号(%something)以毫秒为单位返回当前时间? 问题答案: 没有完全符合您需要的Log4J符号。 以给定的模式返回当前日期,该模式由(放在方括号之间的模式)定义,但是没有给您以毫秒为单位的时间。 给出自 执行开始以来的 毫秒数。 实现所需目标的一种可能方法是扩展Log4j的行为,这要复杂得多,但是如果绝对必要,请按以下步骤进行: 自定义log4j(编
问题内容: 我需要处理大量CSV文件,其中时间戳始终是代表以毫秒为单位的unix时间戳的字符串。我找不到有效修改这些列的方法。 这就是我想出的,但是,这当然只重复了该列,而我不得不以某种方式将其放回原始数据集。我确定创建?时可以做到。 这将选择“ UNIXTIME”列,并将其更改为 进入这个 但是,我想使用类似的方法来获取转换后的列返回的整个数据集,或者像我已经写的那样,仅在从CSV生成DataF