我在MySql中有一个存储DateTime.Ticks的整数列。在查询中将DateTime.Ticks转换为MySQL日期时间
单个刻度代表一百纳秒或百万分之一秒。毫秒中有10,000个刻度。
此属性的值表示1月1日,0001
因为12:00:00午夜之后所经过的100纳秒为间隔的数量,我怎样才能将它转换为一个DateTime的查询?我已经尝试了很多东西,但无法让它起作用。
对于蜱634128921500016150我希望能得到MySQL的日期时间“2010-06-23 12点06分50秒”
我会相信下面的应该工作,但它给“4009-06-22 12 :15:50.001600' 。它似乎已经过了2001年,1天和9分钟......如果年份和日期一致,我可以手动修复它,但是会议记录似乎有点奇怪。
SELECT DATE_ADD('0000-01-01 00:00:00',
INTERVAL 634128921500016150/10000000 SECOND_MICROSECOND);
我试过添加更多的零,但它永远不会匹配:
我也试过乔恩斯基特的建议,但它几乎给出了相同的结果(第二个不同的某些部分)
谢谢,但它给出了相同的结果。我已经用更多的细节更新了我的帖子。 – simendsjo 2010-06-23 10:23:20
@simendsjo:我做了一个编辑 - 你应该使用0001而不是0000.我知道这听起来像它只会使1年的差异,而不是2000年,但*也许* 0意味着什么特殊的MySQL? – 2010-06-23 10:31:52
非常感谢,作品像魅力! base_ticks需要从2001年开始,而不是1001.“0000-00-00 00:00:00”是mysql中空白日期的特殊值,非常类似于DateTime.MinValue – simendsjo 2010-06-23 12:11:12