相关疑难解决方法(0)

PostgreSQL中有/无时区的时间戳之间的差异

存储时间戳值不同PostgreSQL中,当数据类型是WITH TIME ZONEWITHOUT TIME ZONE?可以用简单的测试用例说明差异吗?

postgresql timezone types

165
推荐指数
5
解决办法
18万
查看次数

生成PostgreSQL中两个日期之间的时间序列

我有这样的查询,很好地生成两个给定日期之间的一系列日期:

select date '2004-03-07' + j - i as AllDate 
from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i,
     generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j
Run Code Online (Sandbox Code Playgroud)

它在2004-03-07和之间生成162个日期2004-08-16,这就是我想要的.这段代码的问题是,它不会得到正确的答案时,这两个日期都不同年份,例如,当我尝试2007-02-012008-04-01.

有更好的解决方案吗?

postgresql date time-series postgresql-9.1 generate-series

72
推荐指数
3
解决办法
7万
查看次数

Now()没有时区

我有一个added_at类型的列timestamp without time zone.我希望它的默认值是当前的日期时间但没有时区.该函数也now()返回一个时区.

我该如何解决这个问题?

postgresql timestamp postgresql-9.2

57
推荐指数
4
解决办法
7万
查看次数

PostgreSQL date()带有时区

我在从Postgres正确选择日期时遇到问题 - 它们以UTC格式存储,但未正确转换为Date()函数.

将时间戳转换为日期会给我错误的日期,如果它超过太平洋标准时间下午4点.

2012-06-21应该是2012-06-20这种情况.

starts_at列数据类型是timestamp without time zone.这是我的疑问:

无需转换为PST时区:

Select starts_at from schedules where id = 40;

      starts_at      
---------------------
 2012-06-21 01:00:00
Run Code Online (Sandbox Code Playgroud)

转换给出了这个:

Select (starts_at at time zone 'pst') from schedules where id = 40;
        timezone        
------------------------
 2012-06-21 02:00:00-07
Run Code Online (Sandbox Code Playgroud)

但是都没有转换为时区中的正确日期.

postgresql timezone datetime rails-postgresql postgresql-9.1

43
推荐指数
3
解决办法
7万
查看次数

仅选择今天(从午夜开始)时间戳

我有一个PostgreSQL 8.4服务器,每天晚上01:00重新启动(不要问),需要获取连接用户列表(即他们的时间戳u.login > u.logout):

SELECT u.login, u.id, u.first_name
FROM pref_users u
WHERE u.login > u.logout and 
      u.login > now() - interval '24 hour'
ORDER BY u.login;

           login            |           id   | first_name
----------------------------+----------------+-------------
 2012-03-14 09:27:33.41645  | OK171511218029 | Alice
 2012-03-14 09:51:46.387244 | OK448670789462 | Bob
 2012-03-14 09:52:36.738625 | OK5088512947   | Sergej
Run Code Online (Sandbox Code Playgroud)

但是比较u.login > now()-interval '24 hour'也会在最后01:00之前提供用户,这很糟糕,尤其是.在早上.

是否有任何有效的方法来获取自上次01:00以来没有使用字符串杂技的登录to_char()

postgresql datetime timestamp date postgresql-8.4

37
推荐指数
4
解决办法
4万
查看次数

PostgreSQL:错误:42601:返回"记录"的函数需要列定义列表

(免责声明:PostgreSQL新手.)

好吧,据我所知,我的功能与我见过的样本非常相似.有人能否告诉我如何让这个工作?

create or replace function get_user_by_username(
    username varchar(250),
    online boolean
    ) returns setof record as $$
declare result record;
begin

    if online then 
        update users
        set last_activity = current_timestamp
        where user_name = username;
    end if;

    return query
    select
        user_id,
        user_name,
        last_activity,
        created,
        email,
        approved,
        last_lockout,
        last_login,
        last_password_changed,
        password_question,
        comment
    from
        users
    where
        user_name = username
    limit 1;

    return;
end;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

36
推荐指数
2
解决办法
4万
查看次数

PostgreSQL - 如何在不同的时区渲染日期?

我的服务器在中部时间.我想使用东部时间渲染时间戳.

例如,我想呈现2012-05-29 15:00:002012-05-29 16:00:00 EDT.

我怎样才能实现它?

to_char('2012-05-29 15:00:00'::timestamptz at time zone 'EST5EDT', 'YYYY-MM-DD HH24:MI:SS TZ')2012-05-29 16:00:00(没有区域).

to_char('2012-05-29 15:00:00'::timestamp at time zone 'EST5EDT', 'YYYY-MM-DD HH24:MI:SS TZ')2012-05-29 14:00:00 CDT(错).

这个有用,但它太复杂了必须有一个更简单的方法: replace(replace(to_char(('2012-05-29 15:00:00'::timestamptz at time zone 'EST5EDT')::timestamptz, 'YYYY-MM-DD HH24:MI:SS TZ'), 'CST', 'EST'), 'CDT', 'EDT')

postgresql timezone datetime

27
推荐指数
1
解决办法
3万
查看次数

如何将"字符串"转换为"没有时区的时间戳"

我是Postgresql的新手,我正在使用WCF服务.
这是我的代码片段:

$.ajax({
    url: '../Services/AuctionEntryServices.svc/InsertAuctionDetails',
    data: JSON.stringify({ "objAuctionEntryEntity": {
        "AuctionNO": '',          
        "AuctionDate": $('[Id$="lblAuctionDateVal"]').text(),
        "TraderID": $('[Id$="ddlTraderName"] option:selected').val(),
        "Grade": $('[Id$="ddlGrade"] option:selected').val(),
        "Varity": $('[Id$="ddlVarity"] option:selected').val(), 
        "QuntityInAuction": $('#txtQuantityForAuction').val(),
        "AuctionRate": $('#txtAuctionRate').val(),
        "BrokerID": a[0],
        "IsSold": $('#chlIsSold').is(':checked'),
        "CreatedBy": $.parseJSON(GetCookie('Admin_User_In_Mandi')).UserID,
        "UpdatedBy": $.parseJSON(GetCookie('Admin_User_In_Mandi')).UserID,
        "CreationDate": GetCurrentDate().toMSJSON(),
        "IsActive": true,
        "AuctionTransaction": arrAuctionTransaction,
        "MandiID": $.parseJSON(GetCookie('Admin_User_In_Mandi')).MandiID,
        "FarmerID": _ownerid,
        "AuctionNO": _auctionno,
        "AmmanatPattiID": _ammantpattiid,
        "ToTraderID": b[0],
        "ToTraderName": $('#txtOtherBuyerNameEN').val(),
        "ToTraderName_HI": $('#txtOtherBuyerNameHI').val()
    }
}),
    type: 'POST',
    contentType: 'application/json',
    dataType: 'json'              
});
Run Code Online (Sandbox Code Playgroud)

这里:

$('[Id$="lblAuctionDateVal"]').text() = "20/8/2013 14:52:49" 
Run Code Online (Sandbox Code Playgroud)

我的这个领域的数据类型是timestamp without time zone.
如何将此字符串转换为timestamp without time zone数据类型?

javascript postgresql ajax wcf jquery

23
推荐指数
2
解决办法
5万
查看次数

选择两个时间戳之间的记录

我正在使用SQL transact命令将Unix脚本转换为PostgreSQL命令.

我有一个包含字段last_update_time(xtime)的记录的表,我想选择表中已在选定时间段内更新的每个记录.

比如,当前时间05/01/2012 10:00:00和所选时间是04/01/2012 23:55:00.如何从表中选择在这些日期之间更新的所有记录.在发出psql命令之前,我已在Unix脚本中将2次转换为秒,并计算了2个时间段之间的间隔(以秒为单位).

我觉得有点像

SELECT A,B,C FROM table
WHERE xtime BETWEEN now() - interval '$selectedtimeParm(in secs)' AND now();
Run Code Online (Sandbox Code Playgroud)

我无法评价ParmselectedtimeParm-它不妥善解决.

编者按:我没有改变不正确的使用条款period,time frame,timedate为DateTime类型timestamp,因为我讨论,在我的答案.

postgresql datetime

20
推荐指数
1
解决办法
6万
查看次数

在SQL中返回JSON对象数组(Postgres)

我有下表MyTable:

 id ? value_two ? value_three ? value_four 
???????????????????????????????????????????
  1 ? a         ? A           ? AA
  2 ? a         ? A2          ? AA2
  3 ? b         ? A3          ? AA3
  4 ? a         ? A4          ? AA4
  5 ? b         ? A5          ? AA5
Run Code Online (Sandbox Code Playgroud)

我想查询{ value_three, value_four }按组分组的对象数组value_two.value_two应该在结果中独立存在.结果应如下所示:

 value_two ?                                                                                    value_four                                                                                 
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 a         ? [{"value_three":"A","value_four":"AA"}, {"value_three":"A2","value_four":"AA2"}, {"value_three":"A4","value_four":"AA4"}]
 b         ? [{"value_three":"A3","value_four":"AA3"}, {"value_three":"A5","value_four":"AA5"}]
Run Code Online (Sandbox Code Playgroud)

它是否使用json_agg()或无关紧要array_agg().

然而,我能做的最好的事情是:

with MyCTE as ( select …
Run Code Online (Sandbox Code Playgroud)

sql arrays postgresql json aggregate-functions

19
推荐指数
1
解决办法
2万
查看次数