有没有办法从PostgreSQL中的NOW()函数的结果中删除精度?
"2012-08-21 10:23:34.867502"
我正在寻找格式:
"2012-08-21 10:23:34"
我正在尝试使用以下SQL更新“没有时区的时间戳”类型的列:
UPDATE table SET column = now();
谢谢!
答案 0 :(得分:16)
简单的答案是将其转换为零精度。
select now()::timestamptz(0);
答案 1 :(得分:11)
UPDATE tbl SET col = DATE_TRUNC('second', NOW());
请参阅DATE_TRUNC的文档。
答案 2 :(得分:2)
您可以在pgAdmin 3中将列的长度移动到0,或者如果使用 timestamp(0)创建表格,则可以更改表格的结构:
<!DOCTYPE html>
<!--[if lt IE 7]> <html lang="en" ng-app="ngSocial" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html lang="en" ng-app="ngSocial" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html lang="en" ng-app="ngSocial" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en" ng-app="ngSocial" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>NgSocial App</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="app.css">
</head>
<body>
<nav class="navbar navbar-inverse">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">ngSocial</a>
</div>
</div>
</nav>
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<div class="container">
<div ng-view></div>
<div class="row">
</div>
</div>
<!-- In production use:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/x.x.x/angular.min.js"></script>
-->
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/ng-facebook/ngFacebook.js"></script>
<script src="app.js"></script>
<script src="view1/view1.js"></script>
<script src="view2/view2.js"></script>
<script src="facebook/facebook.js"></script>
</body>
</html>
但是如果你这样做,如果你试图插入一个毫秒的时间戳,就会出现错误。
答案 3 :(得分:0)
根据您的要求,另一个选项是调整timestamp列本身的精度 - 将其精度设置为0.当将PostgreSQL与不处理时间戳中的小数秒的旧程序一起使用时,这非常有用。 / p>
答案 4 :(得分:0)
"error": {
"code": "ErrorAccessDenied",
"message": "AccessDeniedException",
在上一个答案中选择 select now()::timestamp(0);
仍然保留时区。