如何在PostgreSQL中从timestamp(0)舍入毫秒值?

时间:2019-03-05 12:21:10

标签: postgresql timestamp rounding

我需要将// App.js <AppNavigator screenProps={{ handler: () => {}, hello: "World" }} /> // Navigator.js const StackNavigator = createStackNavigator({ Login: { screen: ({ screenProps, navigation }) => { screenProps.handler(); // ... }, }, }) 的毫秒值四舍五入。

例如:2018-04-19 10:43:13。 719 至2018-04-19 10:43:13。 000

2 个答案:

答案 0 :(得分:3)

您可以使用函数date_trunc

SELECT date_trunc('seconds', '2018-04-19 10:43:13.719'::timestamp);

答案 1 :(得分:2)

所有这些都不适用于您建议的timestamp(0),因为该类型不存储开始的毫秒数。对于文字输入或timestamp(不带精度修饰符)将是有意义的。

舍入 时间戳记'2018-04-19 10:43:13.719'将为您提供'2018-04-19 10:43:14'(四舍五入的向上)。

截短 微秒,您可以使用date_trunc(),就像已经提供的Lorenz。根据您的评论,您仍然需要多余的悬空“ .000”。为了显示,我建议to_char()

SELECT to_char(date_trunc('seconds', timestamp '2018-04-19 10:43:13.719'), 'YYYY-MM-DD HH24:MI:SS.MS')

或更便宜的是,直接在to_char()后面附加'.000'而不是实际的毫秒数:

SELECT to_char(timestamp '2018-04-19 10:43:13.719', 'YYYY-MM-DD HH24:MI:SS".000"')

The manual:

  

to_char模板中允许使用普通文本,并将其输出   从字面上看。您可以在子字符串中使用双引号将其强制为   即使包含模板模式,也可以解释为文字文本。