小编Sas*_*M78的帖子

MySQL:在列中拆分值以获取多行

我在表中有一些数据,如下所示:

product_id      | categories
----------------+-------------
10              | 9,12
11              | 8
12              | 11,18,5
Run Code Online (Sandbox Code Playgroud)

我想要一个会产生这个输出的选择语句:

product_id      | category_id
----------------+-------------
10              | 9
10              | 12
11              | 8
12              | 11
12              | 18
12              | 5
Run Code Online (Sandbox Code Playgroud)

我不知道如何表达这种情况才能用谷歌搜索它。

mysql select

7
推荐指数
1
解决办法
5万
查看次数

DATEADD 和 DATEPART 以毫秒为单位产生奇怪的结果

我有一个包含 unix 时间日期和一个单独的毫秒字段的表。我现在尝试从两个字段中创建一个日期以供以后计算(例如过滤时间范围)。将毫秒添加到通过...创建的日期后

 dateadd(S, [timestamp_s], '1970-01-01')
Run Code Online (Sandbox Code Playgroud)

通过添加另一个DATEADD...

dateadd(MS, [timestamp_ms], dateadd(S, [timestamp_s], '1970-01-01')) eventdate
Run Code Online (Sandbox Code Playgroud)

...然后输出日期毫秒有时关闭一毫秒。出于好奇,我然后尝试提取毫秒,看看这给出了什么,然后又减少了 1 毫秒。

在此处输入图片说明

我认为这与内部浮点精度有关,但我在数据中看不到任何规则。有时每个操作都会减少 1 毫秒,有时第一个会减 1,但 DATEPART 然后会再次加 1,等等。

由于这可能会导致某些用户感到沮丧,因此我想了解这种行为并在理想情况下找到问题的解决方案。提前致谢。

sql-server datatypes datetime sql-server-2016

5
推荐指数
1
解决办法
285
查看次数