导航:首页 > 使用方法 > mysqldate函数的使用方法

mysqldate函数的使用方法

发布时间:2022-05-05 16:49:31

Ⅰ MySQL中DATE_FORMATE函数使用时的注意点

今天帮同事处理一个SQL(简化过后的)执行报错:
mysql>
select
date_format('2013-11-19','Y-m-d')
>
timediff('2013-11-19',
'2013-11-20');
ERROR
1267
(HY000):
Illegal
mix
of
collations
(utf8_general_ci,COERCIBLE)
and
(latin1_swedish_ci,NUMERIC)
for
operation
'>'
乍一看挺莫名其妙的,查了下手册,发现有这么一段:
The
language
used
for
day
and
month
names
and
abbreviations
is
controlled
by
the
value
of
the
lc_time_names
system
variable
(Section
9.7,
“MySQL
Server
Locale
Support”).
The
DATE_FORMAT()
returns
a
string
with
a
character
set
and
collation
given
by
character_set_connection
and
collation_connection
so
that
it
can
return
month
and
weekday
names
containing
non-ASCII
characters.
也就是说,DATE_FORMATE()
函数返回的结果是带有字符集/校验集属性的,而
TIMEDIFF()
函数则没有字符集/校验集属性,我们来验证一下:
mysql>
set
names
utf8;
mysql>
select
charset(date_format('2013-11-19','Y-m-d')),
charset(timediff('2013-11-19',
'2013-11-20'));
+--------------------------------------------+-----------------------------------------------+
|
charset(date_format('2013-11-19','Y-m-d'))
|
charset(timediff('2013-11-19',
'2013-11-20'))
|
+--------------------------------------------+-----------------------------------------------+
|
utf8
|
binary
|
+--------------------------------------------+-----------------------------------------------+
mysql>
set
names
gb2312;
mysql>
select
charset(date_format('2013-11-19','Y-m-d')),
charset(timediff('2013-11-19',
'2013-11-20'));
+--------------------------------------------+-----------------------------------------------+
|
charset(date_format('2013-11-19','Y-m-d'))
|
charset(timediff('2013-11-19',
'2013-11-20'))
|
+--------------------------------------------+-----------------------------------------------+
|
gb2312
|
binary
|
+--------------------------------------------+-----------------------------------------------+
可以看到,随着通过
SET
NAMES
修改
character_set_connection、collation_connection
值,DATE_FORMAT()
函数返回结果的字符集也跟着不一样。在这种情况下,想要正常工作,就需要将结果进行一次字符集转换,例如:
mysql>
select
date_format('2013-11-19','Y-m-d')
>
convert(timediff('2013-11-19',
'2013-11-20')
using
utf8);
+----------------------------------------------------------------------------------------------+
|
date_format('2013-11-19','Y-m-d')
>
convert(timediff('2013-11-19',
'2013-11-20')
using
utf8)
|
+----------------------------------------------------------------------------------------------+
|
1
|
+----------------------------------------------------------------------------------------------+
就可以了
:)

Ⅱ 求教MYSQL的日期函数

EXTRACT(type FROM date)从date中返回“type”的值。
MONTH(date) 返回date的月份,范围1到12。
MINUTE(date) 返回date的分钟,范围是0到59。

返回月份匹配的结果集
SELECT *
FROM tableA
WHERE EXTRACT(MONTH FROM NOW( )) =
EXTRACT(MONTH FROM logtime)

SELECT *
FROM tableA
WHERE MONTH(NOW( )) =
MONTH(logtime)

返回分钟匹配的结果集
SELECT *
FROM tableA
WHERE EXTRACT(MINUTE FROM NOW( )) =
EXTRACT(MINUTE FROM logtime)

SELECT *
FROM tableA
WHERE MINUTE(NOW( )) =
MINUTE(logtime)

你可以用年和月一起比较啊,去年,前年都不成问题,你原来问题没有说清楚前提和背景。
想查x个月以前的信息

if当前月<=x
SELECT *
FROM tableA
WHERE MONTH(logtime) <=(12-x+MONTH(NOW( ))) AND YEAR(logtime)<YEAR(NOW())

else
SELECT *
FROM tableA
WHERE MONTH(logtime) <=(MONTH(NOW( )-x) AND YEAR(logtime)<=YEAR(NOW())

在date的分钟上加上x分钟: DATE_ADD(date,INTERVAL x MINUTE);

MYSQL中也有DATEDIFF函数
DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分

很明显和MSSQL里的datefiff形同神异,并没有过多的参数,只能比较天的差别。
所以在MySQL要加上自己的处理才行。

Ⅲ MySql要怎么插入DateTime型的数据

Date date=new Date(); //先获取一个Date对象

DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //创建一个格式化日期对象

String punchTime = simpleDateFormat.format(date);//格式化后的时间

或者:

Timestamp timeStamp = new Timestamp(date.getTime()); // 让日期时间转换为数据库中的timestamp类型

(3)mysqldate函数的使用方法扩展阅读:

关于上述两种方法的区别

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。 日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。

将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。

Timestamp 允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQLTIMESTAMP 小数秒值的能力。Timestamp 也提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。

Ⅳ 请问mysql的日期函数怎么用。 我在一张表里有个日期字段,我怎么查找最近1个月的记录。

where 字段>date_add(now(),interval -1 month) and 字段<now()
当然now也可以是你要的的日期

Ⅳ 怎样在MySQL中操作日期

select curDate(); #获取当前日期select curTime(); #获取当前时间select now(); #获取当前日期+时间
列举1个天数加减的例子,其他的看英文意思就可以理解了
select date_add(now(), interval 1 day); #当前日期天数+1
select date_add(now(), interval -1 day); #当前日期天数-1
select date_add(now(), interval 1 hour);
select date_add(now(), interval 1 minute);
select date_add(now(), interval 1 second);
select date_add(now(), interval 1 microsecond);
select date_add(now(), interval 1 week);
select date_add(now(), interval 1 month);
select date_add(now(), interval 1 quarter);
select date_add(now(), interval 1 year);

Ⅵ mysql日期函数

DATE_ADD是时间计算函数。DATE_ADD(<TIME>, <INTERVAL> )

NOW()函数返回的是SQL命令执行的当前时间;
INTERVAL -1 DAY 的意思就是向前1天( 时间 - 1天) 等同于 INTEVAL -24 HOUR
如果你想向后一天,就可以写INTERVAL 1 DAY;或者 INTERVAL 24 HOUR 都是可以的

Ⅶ mysql 中怎样取一个日期字段的年月比如signDate字段的值为2013-12-19,我只要2013-12,求一条sql语句

方法一:select date_format(日期字段,'%Y-%m') as '日期' from 表

方法二:mysql有日期函数date_format

SELECT date_format(signDate,'%Y-%m') AS MY_YM FROM tablename WHERE 1;

方法三:对这个字段使用函数left或者substring

例如:

select left(signDate,7) as date from tablename 或者

select substring(signDate,0,7) as date from tablename

(7)mysqldate函数的使用方法扩展阅读:

MySQL 截取部分日期

使用 DATE_FORMAT(get_date, '%Y-%m-%d') 函数截取。

其中:get_date 是需要截取的字段名;'%Y-%m-%d' 是截取后的日期格式。

select date_format('1997-10-04 22:23:00','%y %M %b %D %W %a %Y-%m-%d %H:%i:%s %r %T');

结果:97 October Oct 4th Saturday Sat 1997-10-04 22:23:00 10:23:00 PM 22:23:00

get_date = "2006-12-07"

SELECT count(*) FROM t_get_video_temp Where DATE_FORMAT(get_date, '%Y-%m-%d')='2006-12-07';

SELECT count(*) FROM t_get_video_temp Where get_date like '2006%-07%';

Ⅷ MySQL函数的日期时间函数

a) 函数ADDDATE(date ,INTERVAL expr type ) ADDDATE(expr ,days )
函数使用说明: 当被第二个参数的 INTERVAL 格式激活后, ADDDATE() 就是 DATE_ADD() 的同义词。相关函数 SUBDATE() 则是 DATE_SUB() 的同义词。对于 INTERVAL 参数上的信息 ,请参见关于 DATE_ADD() 的论述。
b) 函数 ADDTIME(expr ,expr2 )
函数使用说明: ADDTIME() 将 expr2 添加至 expr 然后返回结果。 expr 是一个时间或时间日期表达式,而 expr2 是一个时间表达式。
c) 函数 CONVERT_TZ(dt ,from_tz ,to_tz )
函数使用说明: CONVERT_TZ() 将时间日期值 dt 从 from_tz 给出的时区转到 to_tz 给出的时区,然后返回结果值。关于可能指定的时区的详细论述,若自变量无效,则这个函数会返回 NULL
d) 函数 CURDATE()
函数使用说明:将当前日期按照 'YYYY-MM-DD' 或 YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
e) 函数 CURRENT_DATE CURRENT_DATE()
函数使用说明: CURRENT_DATE 和 CURRENT_DATE() 是的同义词 .
f) 函数 CURTIME()
函数使用说明: 将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定。
g) 函数 CURRENT_TIME, CURRENT_TIME()
函数使用说明: CURRENT_TIME 和 CURRENT_TIME() 是 CURTIME() 的同义词。
h) 函数 CURRENT_TIMESTAMP, CURRENT_TIMESTAMP()
函数使用说明: CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP() 是 NOW() 的同义词
i) 函数 DATE(expr )
函数使用说明: 提取日期或时间日期表达式expr 中的日期部分。
j) 函数 DATEDIFF(expr ,expr2 )
函数使用说明: DATEDIFF() 返回起始时间 expr 和结束时间 expr2 之间的天数。 Expr 和 expr2 为日期或 date-and-time表达式。计算中只用到这些值的日期部分。
k) 函数 DATE_ADD(date ,INTERVAL expr type ) DATE_SUB(date ,INTERVAL expr type )
函数使用说明:这些函数执行日期运算。 date 是一个 DATETIME 或 DATE 值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr 是一个字符串 ; 对于负值的时间间隔,它可以以一个 ‘-’ 开头。 type 为关键词,它指示了表达式被解释的方式。
l) 函数 DATE_FORMAT(date ,format )
函数使用说明:根据 format 字符串安排 date 值的格式。
m) 函数 DAY(date )
函数使用说明: DAY() 和 DAYOFMONTH() 的意义相同
n) 函数 DAYNAME(date )
函数使用说明:返回 date 对应的工作日名称。
o) 函数 DAYOFMONTH(date )
函数使用说明:返回 date 对应的该月日期,范围是从 1 到 31
p) 函数 DAYOFWEEK(date )
函数使用说明:返回 date (1 = 周日 , 2 = 周一 , ..., 7 = 周六 ) 对应的工作日索引。这些索引值符合 ODBC 标准
q) 函数 DAYOFYEAR(date )
函数使用说明:返回date 对应的一年中的天数,范围是从 1 到366 。
r) 函数 EXTRACT(type FROM date )
函数使用说明: EXTRACT() 函数所使用的时间间隔类型说明符同 DATE_ADD() 或 DATE_SUB() 的相同 , 但它从日期中提取其部分,而不是执行日期运算。
s) 函数FROM_DAYS(N )
函数使用说明: 给定一个天数 N , 返回一个 DATE 值。
t) 函数 FROM_UNIXTIME(unix_timestamp ) FROM_UNIXTIME(unix_timestamp ,format )
函数使用说明:返回'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS 格式值的unix_timestamp 参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。 若format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。
u) 函数 GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')
函数使用说明:返回一个格式字符串。这个函数在同 DATE_FORMAT() 及 STR_TO_DATE() 函数结合时很有用
v) 函数 HOUR(time )
函数使用说明:返回 time 对应的小时数。对于日时值的返回值范围是从 0 到 23
w) 函数 LAST_DAY(date )
函数使用说明:获取一个日期或日期时间值,返回该月最后一天对应的值。若参数无效,则返回 NULL 。
x) 函数 LOCALTIME, LOCALTIME()
函数使用说明: LOCALTIME 及 LOCALTIME() 和 NOW() 具有相同意义。
y) 函数 LOCALTIMESTAMP, LOCALTIMESTAMP()
函数使用说明: LOCALTIMESTAMP 和 LOCALTIMESTAMP() 和 NOW() 具有相同意义。
z) 函数 MAKEDATE(year ,dayofyear )
函数使用说明:给出年份值和一年中的天数值,返回一个日期。 dayofyear 必须大于 0 ,否则结果为 NULL 。
aa) 函数 MAKETIME(hour ,minute ,second )
函数使用说明: 返回由 hour 、 minute 和 second 参数计算得出的时间值
bb) 函数 CROSECOND(expr )
函数使用说明:从时间或日期时间表达式expr 返回微秒值,其数字范围从 0 到 999999 。
cc) 函数 MINUTE(time )
函数使用说明:返回 time 对应的分钟数 , 范围是从 0 到 59 。
dd) 函数 MONTH(date )
函数使用说明:返回 date 对应的月份,范围时从 1 到 12 。
ee) 函数 MONTHNAME(date )
函数使用说明: 返回 date 对应月份的全名
ff) 函数 NOW()
函数使用说明:返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。
gg) 函数 PERIOD_ADD(P ,N )
函数使用说明:添加 N 个月至周期 P ( 格式为 YYMM 或 YYYYMM) ,返回值的格式为 YYYYMM 。注意周期参数 P 不是 日期值。
hh) 函数 PERIOD_DIFF(P1 ,P2 )
函数使用说明:返回周期 P1 和 P2 之间的月份数。 P1 和 P2 的格式应该为 YYMM 或 YYYYMM 。注意周期参数 P1 和 P2 不是 日期值。
ii) 函数 QUARTER(date )
函数使用说明:返回 date 对应的一年中的季度值,范围是从 1 到 4
jj) 函数 SECOND(time )
函数使用说明:返回 time 对应的秒数 , 范围是从 0 到 59 。
kk) 函数 SEC_TO_TIME(seconds )
函数使用说明: 返回被转化为小时、 分钟和秒数的 seconds 参数值 , 其格式为 'HH:MM:SS' 或 HHMMSS ,具体格式根据该函数是否用在字符串或数字语境中而定
ll) 函数 STR_TO_DATE(str ,format )
函数使用说明:这是 DATE_FORMAT() 函数的倒转。它获取一个字符串 str 和一个格式字符串 format 。若格式字符串包含日期和时间部分,则 STR_TO_DATE() 返回一个 DATETIME 值, 若该字符串只包含日期部分或时间部分,则返回一个 DATE 或 TIME 值。
mm) 函数 SUBDATE(date ,INTERVAL expr type ) SUBDATE(expr ,days )
函数使用说明:当被第二个参数的 INTERVAL 型式调用时 , SUBDATE() 和 DATE_SUB() 的意义相同。对于有关 INTERVAL 参数的信息, 见有关 DATE_ADD() 的讨论。
nn) 函数 SUBTIME(expr ,expr2 )
函数使用说明: SUBTIME() 从 expr 中提取 expr2 ,然后返回结果。 expr 是一个时间或日期时间表达式,而 xpr2 是一个时间表达式。
oo) 函数 SYSDATE()
函数使用说明:返回当前日期和时间值,格式为 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS , 具体格式根据函数是否用在字符串或数字语境而定。
pp) 函数 TIME(expr )
函数使用说明:提取一个时间或日期时间表达式的时间部分,并将其以字符串形式返回。
qq) 函数 TIMEDIFF(expr ,expr2 )
函数使用说明: TIMEDIFF() 返回起始时间 expr 和结束时间 expr2 之间的时间。 expr 和 expr2 为时间或 date-and-time表达式, 两个的类型必须一样。
rr) 函数TIMESTAMP(expr ) , TIMESTAMP(expr ,expr2 )
函数使用说明: 对于一个单参数 , 该函数将日期或日期时间表达式expr 作为日期时间值返回 . 对于两个参数 , 它将时间表达式 expr2 添加到日期或日期时间表达式 expr 中,将 theresult 作为日期时间值返回。
ss) 函数 TIMESTAMPADD(interval ,int_expr ,datetime_expr )
函数使用说明:将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr 中。 int_expr 的单位被时间间隔参数给定,该参数必须是以下值的其中一个: FRAC_SECOND 、SECOND 、 MINUTE 、 HOUR 、 DAY 、 WEEK 、 MONTH 、 QUARTER 或 YEAR 。可使用所显示的关键词指定Interval 值,或使用SQL_TSI_ 前缀。例如, DAY 或SQL_TSI_DAY 都是正确的
tt) 函数 TIMESTAMPDIFF(interval ,datetime_expr1 ,datetime_expr2 )
函数使用说明:返回日期或日期时间表达式 datetime_expr1 和 datetime_expr2 the 之间的整数差。其结果的单位由 interval 参数给出。 interval 的法定值同 TIMESTAMPADD() 函数说明中所列出的相同。
uu) 函数 TIME_FORMAT(time ,format )
函数使用说明:其使用和 DATE_FORMAT() 函数相同 , 然而 format 字符串可能仅会包含处理小时、分钟和秒的格式说明符。其它说明符产生一个 NULL 值或 0 。
vv) 函数 TIME_TO_SEC(time )
函数使用说明:返回已转化为秒的 time 参数
ww) 函数 TO_DAYS(date )
函数使用说明:给定一个日期 date , 返回一个天数 ( 从年份 0 开始的天数 ) 。
xx) 函数 UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date )
函数使用说明:若无参数调用,则返回一个 Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数 ) 作为无符号整数。若用 date 来调用 UNIX_TIMESTAMP() ,它会将参数值以 '1970-01-01 00:00:00' GMT 后的秒数的形式返回。 date 可以是一个 DATE 字符串、一个 DATETIME 字符串、一个 TIMESTAMP 或一个当地时间的 YYMMDD 或 YYYMMDD 格式的数字。
yy) 函数 UTC_DATE, UTC_DATE()
函数使用说明:返回当前 UTC 日期值,其格式为 'YYYY-MM-DD' 或 YYYYMMDD ,具体格式取决于函数是否用在字符串或数字语境中。
zz) 函数 UTC_TIME, UTC_TIME()
函数使用说明:返回当前 UTC 值,其格式为 'HH:MM:SS' 或 HHMMSS ,具体格式根据该函数是否用在字符串或数字语境而定。
aaa) 函数 UTC_TIMESTAMP, UTC_TIMESTAMP()
函数使用说明:返回当前 UTC 日期及时间值,格式为 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS ,具体格式根据该函数是否用在字符串或数字语境而定
bbb) 函数 WEEK(date [,mode ])
函数使用说明:该函数返回 date 对应的星期数。 WEEK() 的双参数形式允许你指定该星期是否起始于周日或周一, 以及返回值的范围是否为从 0 到 53 或从 1 到 53 。若 mode 参数被省略,则使用 default_week_format 系统自变量的值。
ccc) 函数 WEEKDAY(date )
函数使用说明:返回 date (0 = 周一 , 1 = 周二 , ... 6 = 周日 ) 对应的工作日索引 weekday index for
ddd) 函数 WEEKOFYEAR(date )
函数使用说明:将该日期的阳历周以数字形式返回,范围是从 1 到 53 。它是一个兼容度函数,相当于 WEEK(date ,3) 。
eee) 函数 YEAR(date )
函数使用说明:返回 date 对应的年份 , 范围是从 1000 到 9999 。
fff) 函数 YEARWEEK(date ), YEARWEEK(date ,start )
函数使用说明:返回一个日期对应的年或周。 start 参数的工作同 start 参数对 WEEK() 的工作相同。结果中的年份可以和该年的第一周和最后一周对应的日期参数有所不同。

阅读全文

与mysqldate函数的使用方法相关的资料

热点内容
跳绳练腹肌方法视频 浏览:549
酷派感应在哪里设置方法 浏览:148
手机uc浏览器版本查看方法 浏览:284
研究中国股市的有效性问题的方法 浏览:658
天然气洗澡的使用方法 浏览:790
工业盐使用方法 浏览:143
锻炼基础腹肌方法视频教程 浏览:201
介入方法是什么意思 浏览:645
汽车阻尼器的安装方法 浏览:153
论文设计并运用相关研究方法 浏览:558
js封装的方法如何在页面内调用 浏览:539
定量和定性研究方法的种类 浏览:950
腰间盘如何锻炼方法 浏览:609
过河的简单方法 浏览:589
传播研究方法教材 浏览:283
骨科治疗腱鞘炎的方法 浏览:597
电脑突破网络限速的方法 浏览:160
溶液中锂离子浓度检测方法 浏览:164
红杉树树皮的食用方法 浏览:734
剔除离散值计算方法 浏览:624