如何在SQL中格式化日期?

时间:2016-10-03 21:36:06

标签: mysql sql

我必须满足购买日期早于2012年的条件,我无法弄清楚如何格式化我的SQL代码以实现这一目标。

我目前的代码:

import { HighlightDirective } from './highlight.directive';

@NgModule({
  imports: [ BrowserModule ],
  declarations: [
    AppComponent,
    HighlightDirective
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

并且数据库格式相同(在2012-06-15'中),但是当我运行此代码时,它会运行,但我得到0结果。

3 个答案:

答案 0 :(得分:1)

SELECT g.GameName, p.GameID, g.GameID 
FROM games g, purchases p 
WHERE p.GameID = g.GameID
AND p.DatePurchase < '2012-01-01'

如果存储在数据库中的日期是日期时间格式,则只需将其转换为日期。请看下面的代码

   SELECT g.GameName, p.GameID, g.GameID 
   FROM games g, purchases p 
   WHERE p.GameID = g.GameID
   AND CAST(p.DatePurchase AS DATE) < '2012-01-01'

答案 1 :(得分:0)

要比较年份,您始终可以使用MySQL YEAR功能。

SELECT g.GameName, p.GameID, g.GameID 
FROM games g, purchases p 
WHERE p.GameID = g.GameID
AND YEAR(p.DatePurchase) < '2012'

答案 2 :(得分:0)

问题是日期值没有引用,因此它被解释为算术表达式2012 - 1 - 1,即2010

这很容易解决:

... AND p.DatePurchase < '2012-01-01'