标签: sql-date-functions

如何在Doctrine2中使用SQL的YEAR(),MONTH()和DAY()?

我想在本机SQL中执行一个看起来像这样的查询:

SELECT
    AVG(t.column) AS average_value
FROM
    table t
WHERE
    YEAR(t.timestamp) = 2013 AND
    MONTH(t.timestamp) = 09 AND
    DAY(t.timestamp) = 16 AND
    t.somethingelse LIKE 'somethingelse'
GROUP BY
    t.somethingelse;
Run Code Online (Sandbox Code Playgroud)

如果我试图在Doctrine的查询生成器中实现这个,如下所示:

$qb = $this->getDoctrine()->createQueryBuilder();
$qb->select('e.column AS average_value')
   ->from('MyBundle:MyEntity', 'e')
   ->where('YEAR(e.timestamp) = 2013')
   ->andWhere('MONTH(e.timestamp) = 09')
   ->andWhere('DAY(e.timestamp) = 16')
   ->andWhere('u.somethingelse LIKE somethingelse')
   ->groupBy('somethingelse');
Run Code Online (Sandbox Code Playgroud)

我得到错误异常

[语法错误]第0行,第63行:错误:预期的已知函数,得到'年'

如何使用Doctrines查询构建器实现我的查询?

笔记:

  • 我知道Doctrine的Native SQL.我试过这个,但它导致了我的高效和我的开发数据库表有不同名称的问题.我想工作数据库不可知,所以这是没有选择.
  • 虽然我想工作db不可知:FYI,我正在使用MySQL.
  • 有办法将Doctrine扩展到"学习" YEAR()等语句,例如,如此处所示.但我正在寻找避免包含第三方插件的方法.

mysql sql sql-date-functions doctrine-orm

29
推荐指数
2
解决办法
3万
查看次数

下个月的第一天

我正在尝试获得结果,它只显示在CURRENT月的最后一天之前的OrderDates.我猜它会是这样的......

SELECT OrderDate
FROM Orders
WHERE OrderDate < (code for first day of the next month?)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-date-functions

21
推荐指数
2
解决办法
6万
查看次数

是否有一个函数需要一年,一个月和一天在PostgreSQL中创建一个日期?

在文档中,我只能找到一种从字符串创建日期的方法,例如DATE '2000-01-02'.这完全令人困惑和恼人.我想要的是一个带三个参数的函数,所以我可以make_date(2000, 1, 2)使用整数而不是字符串,并返回一个日期(不是字符串).PostgreSQL有这样的内置函数吗?

我问这个的原因是因为我不喜欢将字符串用于不是字符串的东西.日期不是字符串; 他们是约会对象.

我使用的客户端库是Haskell的HDBC-PostgreSQL.我正在使用PostgreSQL 9.2.2.

sql postgresql sql-date-functions

18
推荐指数
3
解决办法
2万
查看次数

Mysql DATE_SUB(NOW(),INTERVAL 1天)24小时或工作日?

我试图获得每天注册用户的数量.目前我正在使用它

$sql = "SELECT name, email FROM users WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastModified"
Run Code Online (Sandbox Code Playgroud)

但我不确定这是每天工作还是每24小时工作一次?

例如,22小时前注册的用户不应该像今天(=星期二)的用户一样返回

mysql date sql-date-functions

16
推荐指数
2
解决办法
9万
查看次数

将java.sql.Date和java.util.Date转换为org.joda.time.LocalDate

我正在努力仔细并仔细地清理我的一些旧的(生产)代码.我要做的一件事就是将我的所有用法转换java.util.DateLocalDateDateTime.

但是,当我工作的时候,我注意到今晚有一个很大的障碍.我有这个代码:

ResultSet results = stmt.executeQuery();

Date last = results.getDate("LAST_DELIVERY_DATE");
Date next = results.getDate("NEXT_DELIVERY_DATE");
boolean received;
if (last == null && next == null) {
    received = true; // order is not open
} else if (last == null) {
    received = false;
} else {
    received = true;
}
Run Code Online (Sandbox Code Playgroud)

我转换lastnext到:

LocalDate last = new LocalDate(results.getDate("LAST_DELIVERY_DATE"));
LocalDate next = new LocalDate(results.getDate("NEXT_DELIVERY_DATE"));
Run Code Online (Sandbox Code Playgroud)

和Netbeans强调if == null并说:

Unnecessary test for null …
Run Code Online (Sandbox Code Playgroud)

java sql jodatime sql-date-functions

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

上个月的Oracle日期函数

我有下面的查询,其中日期是硬编码的.我的目标是删除已编码的日期; 查询应该在运行时拉取上个月的数据.

select count(distinct switch_id)
  from xx_new.xx_cti_call_details@appsread.prd.com
 where dealer_name =  'XXXX'
   and TRUNC(CREATION_DATE) BETWEEN '01-AUG-2012' AND '31-AUG-2012'
Run Code Online (Sandbox Code Playgroud)

我应该使用sysdate-15功能吗?

sql oracle sql-date-functions

14
推荐指数
2
解决办法
12万
查看次数

为什么1582中的两个MySQL日期看起来是相同的,但比较结果是假的?

我知道格列高利历从1582年10月15日开始,在从儒略历过渡期间,已经放弃了10天.

当我在做这个查询时:

SELECT STR_TO_DATE('1582-10-05', '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果:

1582-10-15 (the 10 days difference). 
Run Code Online (Sandbox Code Playgroud)

但是当我试图在这些日期之间进行匹配时,我得到了原始日期(10月5日而不是15日).

例如:

SELECT STR_TO_DATE('1582-10-05', '%Y-%m-%d') = STR_TO_DATE('1582-10-15', '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)

我得到了一个错误的回应,虽然你会期望得到一个真实的,因为10月5日实际上算作10月15日,正如我们在第一个例子中看到的那样.

任何人都可以解释这里发生了什么?

mysql sql calendar gregorian-calendar sql-date-functions

13
推荐指数
1
解决办法
397
查看次数

在Postgres中将日期转换为日期

如何将日期为"2012-08-03"的列转换为Postgres中的日期?

sql postgresql sql-date-functions

9
推荐指数
1
解决办法
3322
查看次数

在sql server中给定月份的最后一个星期五

如何在T-SQL中获取本月最后一个星期五的日期?

我将把年份和月份作为参数传递,例如,201211.如果我通过'201211'作为参数,它应该返回'20121130'作为答案,因为它是11月的最后一个星期五的日期.

t-sql sql-server sql-date-functions

7
推荐指数
1
解决办法
9441
查看次数

Curdate()Vs current_date MySql

请有人在这里解释我.

之间有什么区别curdate()current_dateMySql

mysql sql-date-functions

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