我必须满足购买日期早于2012年的条件,我无法弄清楚如何格式化我的SQL代码以实现这一目标。
我目前的代码:
import { HighlightDirective } from './highlight.directive';
@NgModule({
imports: [ BrowserModule ],
declarations: [
AppComponent,
HighlightDirective
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
并且数据库格式相同(在2012-06-15'中),但是当我运行此代码时,它会运行,但我得到0结果。
答案 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'