我的表格tblEvents
包含dEvent_Date, dEvent_Time, tEvent_Emp_Code_num
列
我必须将所有日期分组并从每个日期获得所有最短时间。
例如我写下面的查询,但没有打印。
SELECT dEvent_Date, MIN(dEvent_Time) as minTime
FROM tblEvents
WHERE
tEvent_Emp_Code_num = 26 AND dEvent_Date = 11/18/2010
GROUP BY dEvent_Date
之后我测试了下面的查询,它可以工作,但它打印所有日子,我只需要指定日期的数据。
SELECT dEvent_Date, MIN(dEvent_Time) as minTime
FROM tblEvents
WHERE tEvent_Emp_Code_num = 26 GROUP BY dEvent_Date
你能帮助我吗?
答案 0 :(得分:0)
您的日期如何存储在表格中? MySQL的默认日期格式为:yyyy-mm-dd。您还必须用单引号括起日期。
你应该搜索:
其中dEvent_Date ='2010/11/18'
如果您没有指定日期格式。
答案 1 :(得分:0)
如果db是sql,则使用Format来检查值在DB ,,,,,
或者你是,,,, 你必须将日期值转换为'2010-11-18',如
$date = date('Y-m-d',strtotime(11/18/2010));
dEvent_Date = $date
答案 2 :(得分:0)
我有同样的问题,我在mysql中使用了cast函数,我的查询看起来像
CREATE VIEW v_a AS SELECT
tblEvents .*,
EXTRACT(YEAR FROM dEvent_Date) AS 'year',
EXTRACT(MONTH FROM dEvent_Date) AS 'month',
DAYOFMONTH(dEvent_Date) AS 'day'
FROM tblEvents WHERE tEvent_Emp_Code_num = 26;
SELECT
v.year,
v.month,
v.day,
count(v.id)
FROM v_a AS v
GROUP BY v.year,v.month,v.day
对于SQL SErver,您可以使用CONVERT函数
SELECT CONVERT(VARCHAR(8), GETDATE(), 4) AS [DD.MM.YY]
或投射功能
SELECT CAST(YEAR(GETDATE()) AS VARCHAR(4))
也许跟着帖子更有用