小编Bul*_*ush的帖子

Postgresql:如何查找2个日期和2个日期之间的小时数?

Postgresql 9.1

我正在尝试使用查询来查找时间表系统的2个日期和2个时间之间的小数/小数小时差异.我正在使用查询来确保软件(不是我编写的)没有任何错误.以下是我正在使用的表中的字段:startdate是Date字段,starttime是Time字段,enddate是Date字段,endtime是Time字段.

我查看了9.1日期时间文档,但仍未找到我需要的内容.

  • age()需要2个时间戳,并且似乎给出整数而不是分数天数的差异.我认为不可能将age()的结果乘以24来得到小时数.我也不知道如何在age()函数中包含时间.
  • 我无法找到将日期和时间转换为其他东西以使用其他功能.
  • 我搜索过谷歌和Stackoverflow,但没有找到帮助我的信息.我已经花了大约4个星期的时间.所以大概已经30个小时了.
  • 注意:我认为我不能添加用户定义的功能.我没有权限.

示例数据:

  • 开始日期和时间:'2016-04-29'和'23:00:00'
  • 截止日期和时间:'2016-04-30'和'01:30:00'

我也试过这个sql语句.

SELECT employeetime.dcmasterid as empid, 
       nonchargeabletime.startdate as ncsdate, 
       nonchargeabletime.starttime as ncstime, 
       nonchargeabletime.enddate as ncedate, 
       nonchargeabletime.endtime as ncetime, 
       employeetime.dchours as normhrs, 
       (timestamp (startdate || ' ' || starttime) - timestamp (enddate || ' ' || endtime)) as diffhrs  
FROM employeetime, nonchargeabletime 
WHERE (nonchargeabletime.employeetime=employeetime.dcautoinc) 
       AND  (nonchargeabletime.startdate >= '2016-04-24') 
       AND (nonchargeabletime.startdate <= '2016-04-30') 
       AND (employeetime.dcmasterid IN ('BLURG')) 
       AND (nonchargeabletime.nonchargeabletype=10) 
ORDER BY employeetime.dcmasterid, nonchargeabletime.startdate, nonchargeabletime.starttime;
Run Code Online (Sandbox Code Playgroud)

但是我startdate说它的语法错误(timestamp …

postgresql datetime date postgresql-9.1

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

如何阻止 perl 消息“不推荐使用 XXX 使用 YYY”转至标准错误?

系统:

  • Ubuntu 18.04 和 Perl 5.26。
  • 我使用 alpine 来接收来自 cron 的电子邮件,主要是发送到 stderr 的消息。
  • 搜索网页没有任何答案。所以我来了。

情况:

  • 我有一个主要的 Perl 程序,它就像一个 listserv 程序,它登录到一个电子邮件帐户并处理每封电子邮件中的电子邮件命令,并根据电子邮件中的命令确定要运行的程序。类似 listserv 的程序和被调用的程序都使用一个名为 util2.pl 的库例程列表。util2.pl必须使用 Mail::Sender,因为我无法在我们的 Perl 中使用更新的电子邮件发送程序,即使在搜索页面等之后。所以现在,我们必须使用 Mail::Sender。
  • util2.pl通过 包含在链中的每个程序中require /path/to/util2.pl
  • 我运行类似 listserv 的程序,它通过 bash 文件和 cron 检查电子邮件。因此,每次 bash 文件运行类似 listserv 的程序时,我都会收到此错误消息到 stderr “Mail::Sender is deprecated...”。
  • 在我的由 cron 运行的 bash 文件中,我尝试过,perl /path/to/program.pl bunch of arguments 2>/tmp/stderr.txt但我仍然收到一封来自 cron 的电子邮件,其中包含此错误消息。也就是说,我每周都会每 10 分钟收到一封包含此错误消息的电子邮件。我最终收到了数千封包含此消息的电子邮件。

问题:

  1. 如何让此消息停止输出?是否有 perl 设置来防止这条消息?我希望弹出其他消息,例如如果我有一个未定义的变量,某事正在对非数字变量进行数字比较等。我只想禁用这个“废话已被弃用”的消息到标准错误。
  2. 或者,我可以设置某种过滤器来删除任何包含错误消息的消息吗?我对高山过滤器一无所知。

非常感谢,这让我很头疼。

bash perl cron

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

SQL语句不适用于MS SQL 2005

  • SQL客户端:Ubuntu 14.04LTS
  • 数据库服务器:MS SQL Server 2005,通过odbc和Freetds访问.适用于我的其他MS SQL 2005服务器.
  • isql 2.2.14
  • 弗雷兹0.91
  • 文本编辑器:Windows 7的Notepad ++ 6.5.5正在通过Samba共享在Ubuntu上编辑我的.sql文件.
  • 不,我不能升级任何东西,我坚持我拥有的东西.

这让我很难过.我从i-net Clear Reports中复制并粘贴了一条SQL语句,并将其粘贴到Windows编辑器中,该编辑器正在编辑Ubuntu .sql文件,该文件只是一个文本文件.我已经连接到另一个MS SQL 2005服务器,没有问题通过isql和Perl.所以我遇到了一个带有大约10个连接的大型SQL语句的问题,并将语句简化为以下多行:

SELECT PKG.SO_ID
FROM
   PACKAGES AS PKG
WHERE
    PKG.tracking_no = '640038823199'
;
Run Code Online (Sandbox Code Playgroud)

此文件由多行带有unix行结尾组成.我的isql命令是:cat test1.sql | isql dsnname 'domain\username' password -v -b.

我使用-b作为批处理模式,因为我通过文件向isql发送输入.错误在第一行立即开始,但我仔细检查了语法,对于SQL Server 2005,'AS'在'PACKAGES AS PKG'中是可选的.

[37000][unixODBC][FreeTDS][SQL Server]Statement(s) could not be prepared.
[37000][unixODBC][FreeTDS][SQL Server]The multi-part identifier "PKG.SO_ID" could not be bound.
[ISQL]ERROR: Could not SQLExecute
[37000][unixODBC][FreeTDS][SQL Server]Incorrect syntax near the keyword 'FROM'.
[37000][unixODBC][FreeTDS][SQL Server]Statement(s) could not be …
Run Code Online (Sandbox Code Playgroud)

perl odbc sql-server-2005 freetds

0
推荐指数
1
解决办法
410
查看次数