我有一个BIGINT,它包含以毫秒为单位格式化的日期。我希望按选定列created_at的年份过滤记录。我使用MYSQL作为我的数据库。
这就是我到目前为止在我的控制器里所拥有的。
@agent = Agent.where('Time.at(created_at/1000).year = ?', '2017')
它提供了以下错误:
Mysql2::Error: You have an error in your SQL syntax
我正在尝试选择mysql中具有特定年份的所有行。datetime的格式是2016-12-02 10:00:00,所以我尝试使用通配符。但是我试过了
SELECT * FROM all-data.prices where YEAR(timestamp)= "2005";
还有SELECT * FROM all-data.prices where timestamp= "2005%" ;,它对我不起作用。
有什么建议是这样的select语句的正确语法吗?
我正在尝试将内容(从我的数据库)加载到不同年份的页面中。
$yearQuery = mysql_query("SELECT DISTINCT YEAR(startDate) AS year FROM series ORDER BY startDate DESC");
if(mysql_num_rows($yearQuery) > 0) {
while($year = mysql_fetch_assoc($yearQuery)) {
echo "<li><a href='/teaching/podcasts?yea
我在表格中有很多文章都有日期标题字符串,例如"1.1.1990“或"31.12.2000”。
我正在寻找一种正则表达式方法来进行mysql查询,它给出了我
a)某些年份之间的职位(例如1960 -1990年)
b)准确日期之间的职位(例如:1960年1月1日至1990年12月31日)
不知何故,我尝试了一下:
SELECT ID FROM posts WHERE post_title LIKE '%.1960'
(这给了我所有在post_title中有"1960“的帖子,这样我就可以循环所有其他年份并将结果相加)
但是:我认为使用正则表达式一定会更容易,
您好,我想知道为什么这个语句在mySQL中有效
SELECT COUNT(*) AS `numrows`
FROM (`myTable`)
WHERE DATE_FORMAT(creationDateTime, '%m/%d/%Y') BETWEEN '02/21/2011' AND '03/20/2011'
但这不是
SELECT COUNT(*) AS `numrows`
FROM (`myTable`)
WHERE DATE_FORMAT(creationDateTime, '%m/%d/%Y') BETWEEN &
我想比较几个条目,我把日期、月份和年份保存在不同的变量中。当我尝试以下几点时,我没有得到正确的答案:
$rescount=mysql_query('SELECT COUNT(*) FROM `sdcheckings` WHERE `dchecked` = 1 AND `email` ="'.$_SESSION['email'].'" AND `cday` >'.date('j').' AND `cmonth` >='.date('n').' AN
我想知道在php中datetime和timestamp之间哪个是最好的选择。
我需要做的事情基本上是:按日期两种方式进行排序,并选择具有特定年份的所有行。有可能吗?
我可以在php-mysql中选择具有特定年份或月份的所有行吗?会像SELECT * FROM my_table WHERE my_date.year = 2014一样吗?
我有3张表,其中2张表有20万份记录,另一张表有180万份记录。我确实使用两个约束(即OCN and TIMESTAMP(month,year) )合并了这3个表。前两个表的月份和年份列为Monthx (包括月份、日期和年份)。和其他表作为每个月和年份的单独列。我提出了这个问题,
mysql--> insert into trail
select * from A,B,C
where A.OCN=B.OCN
and B.OCN=C.OCN
and C.OCN=A.OCN
and date_format(A.Monthx,'%b')=date_
在这个问题中,我有两个查询
1) SELECT * FROM order WHERE order-date BETWEEN '12/01/2013' AND '12/31/2013'
这个查询从表中给出了正确的数据。
但在2个查询中
2) SELECT * FROM order WHERE order-date BETWEEN '12/01/2013' AND '01/10/2014'
此查询不显示表中的任何日期,为什么此查询不显示任何数据,mysql服务器中存在一些年份更改问题。
请帮帮我。
我有一个包含多个日期类型字段的MySQL DB表。我需要在这个表上做不同的选择查询,但是我不确定哪一种方式是最好的从同一个月中找到记录。
我知道我能做到以下几点:
SELECT *
FROM table
WHERE MONTH(somedate) = 5
AND YEAR(somedate) = 2015
但是我一直在读那些没有效率的书,我应该使用实际的日期。
SELECT *
FROM table
WHERE somedate BETWEEN '2015-05-01' AND '2015-05-31'
但是,我只需要将月份和年份作为来自PHP
猜测/希望这很容易,这是mysql的一个新问题。
带有年份、月、日文本字段的单个客户端表(没有时间戳或日期字段ouch)。一天又一天地选择日期。可以很容易地找到解决方法,但是mysql的方法是什么呢?不工作伪代码
SELECT * FROM `venuedates`
WHERE `year`='2017' AND `month` <> 'January' AND (IF `month`='February' AND day > 24)
所以从一月到二月的某一天之后都没有了。谢谢你提供的任何信息。
我希望能够使用下面这样的语句从mysql中获取结果:
SELECT *
FROM table
WHERE amount > 1000
但是我想获取某个特定月份和年份的结果(基于用户的输入)……我是这样尝试的:
SELECT *
FROM table
WHERE amount > 1000
AND dateStart = MONTH('$m')
...$m是一个月,但它给出了错误。
在该表中,它实际上有两个日期:startDate和endDate,但我主要关注startDate。输入值将是月份和年份。我该如何表述根据当年那个月份获得
我希望使用mysql在任何指定的月份之前选择所有记录。以下是我试图发表的声明:
SELECT SUM(amount) as allPreviousAmount FROM `fn_table`
WHERE MONTH(transdate) < 1 AND YEAR(transdate) = YEAR(CURRENT_DATE())
transdate是datetime数据类型。
我有2018年12月的数据。但这并不能选择数据。然后我删除年份部分,仍然没有数据被选择。时间是2018-12-31 15:59:41。
请修复它,并解释为什么这是无效的。