導航:首頁 > 使用方法 > 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函數的使用方法相關的資料

熱點內容
手工紅包小魚燈籠製作方法步驟及圖片 瀏覽:89
重量分析方法包括哪兩個過程 瀏覽:670
如何讓人記住你的方法短視頻 瀏覽:287
手機圖標隱藏功能在哪裡設置方法 瀏覽:30
樣本量少用什麼統計學方法 瀏覽:489
松下遙控器通用手機版使用方法 瀏覽:292
簡便計算的方法字母公式 瀏覽:899
核素敷貼治療方法 瀏覽:941
如何運用會計核算的方法 瀏覽:834
季度開票金額計算方法 瀏覽:33
電腦操作方法要教給上司嗎 瀏覽:447
goodnote閃退解決方法 瀏覽:883
大烏龜編織方法視頻 瀏覽:367
包皮環切器使用方法 瀏覽:864
大蝦宴的製作方法視頻 瀏覽:932
教師資格證常用的心理輔導方法 瀏覽:531
如何確定工資發放方法 瀏覽:252
艾滋哪種治療方法副作用小 瀏覽:332
華為運營商顯示在哪裡設置方法 瀏覽:596
餐飲利率的計算方法 瀏覽:183