我在表中有一些数据,如下所示:
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)
我不知道如何表达这种情况才能用谷歌搜索它。
我有一个包含 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,等等。
由于这可能会导致某些用户感到沮丧,因此我想了解这种行为并在理想情况下找到问题的解决方案。提前致谢。