扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用字符串连接函数CONCAT来完成,如:SELECT CONCAT(year(date1), month(date2), day(date3)) FROM tabal
企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,创新互联建站面向各种领域:成都水处理设备等成都网站设计、全网营销推广解决方案、网站设计等建站排名服务。
首先,mysql中是没有select current_time这么一说的(select是用来查询有结果返回的表达式),select要么调用函数如select current_time(),或者说从数据表查询数据 select current_time from table。
其次,要注意mysql中对应的时间日期格式类型,也就是UPDATE_DATE的字段类型,具体如下:
① 时间日期类型datetime/mysql时间戳timestamp(Ymdhis:20181212121212,对应显示2018-12-12 12:12:12),那么结果应该是:UPDATE T_SYUTYOU SET UPDATE_DATE = now(); ,因为now()保存的结果是一个datetime类型
② 时间型time(his:121212,对应显示12:12:12),那么结果应该是:UPDATE T_SYUTYOU SET UPDATE_DATE = curtime()/current_time(); ,因为curtime()和current_time()一样保存的结果是一个time类型
③ 真正时间戳int unsigned(格林位置时间到目前位置的秒数:1545891091),那么结果应该是:UPDATE T_SYUTYOU SET UPDATE_DATE = unix_timestamp();,因为unix_timestamp()保存的结果是一个真正意义的时间戳
想要了解更多的一些关于MySQL的操作,可以去看看黑马程序员的6天玩转MySQL
想必是做浏览器类型web程序,你应该在更新的jsp网页里,先合成时间字符串,比如:“
2012-06-29 15:30:21” 。然后:
%
//连接数据库
Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://localhost:3306/jxkh?user=rootpassword=123"; //这句的数据库名称、用户名和密码改成你自己的。
Connection conn = DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
request.setCharacterEncoding("gbk");
String myTime = “2012-06-29 15:30:21”;
PreparedStatement pstmt=null;
String sql2 = "insert into user (CTime) values (?);
pstmt=conn.prepareStatement(sql2);
pstmt.setString(1,myTime);
pstmt.executeUpdate();
pstmt.close();
//添加后转到其他页面
response.sendRedirect("result.jsp");
%
mysql有丰富的时间函数:
ADDTIME
(date2
,time_interval
)
//将time_interval加到date2
CONVERT_TZ
(datetime2
,fromTZ
,toTZ
)
//转换时区
CURRENT_DATE
(
)
//当前日期
CURRENT_TIME
(
)
//当前时间
CURRENT_TIMESTAMP
(
)
//当前时间戳
DATE
(datetime
)
//返回datetime的日期部分
DATE_ADD
(date2
,
INTERVAL
d_value
d_type
)
//在date2中加上日期或时间
DATE_FORMAT
(datetime
,FormatCodes
)
//使用formatcodes格式显示datetime
DATE_SUB
(date2
,
INTERVAL
d_value
d_type
)
//在date2上减去一个时间
DATEDIFF
(date1
,date2
)
//两个日期差
DAY
(date
)
//返回日期的天
DAYNAME
(date
)
//英文星期
DAYOFWEEK
(date
)
//星期(1-7)
,1为星期天
DAYOFYEAR
(date
)
//一年中的第几天
EXTRACT
(interval_name
FROM
date
)
//从date中提取日期的指定部分
MAKEDATE
(year
,day
)
//给出年及年中的第几天,生成日期串
MAKETIME
(hour
,minute
,second
)
//生成时间串
MONTHNAME
(date
)
//英文月份名
NOW
(
)
//当前时间
SEC_TO_TIME
(seconds
)
//秒数转成时间
STR_TO_DATE
(string
,format
)
//字串转成时间,以format格式显示
TIMEDIFF
(datetime1
,datetime2
)
//两个时间差
TIME_TO_SEC
(time
)
//时间转秒数]
WEEK
(date_time
[,start_of_week
])
//第几周
YEAR
(datetime
)
//年份
DAYOFMONTH(datetime)
//月的第几天
HOUR(datetime)
//小时
LAST_DAY(date)
//date的月的最后日期
MICROSECOND(datetime)
//微秒
MONTH(datetime)
//月
MINUTE(datetime)
//分返回符号,正负或0
SQRT(number2)
//开平方
如果数据库是datetime类型,那么可以:
DateFormate df = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");
Date d = df.parse(str);
其实数据库存时间的话,完全可以使用字符串,这样比较方便,而且会避免转化带来的错误,在页面上展示的时候直接使用substring来截取你想要的东西。
java中有date和datetime,mysql中也有date和datetime,这里我们来说说mysql中的date和datetime。
1 mysql中的date和datetime
1.1 DATETIME
类型可用于需要同时包含日期和时间信息的值。MySQL 以:
‘YYYY-MM-DD HH:MM:SS’
格式检索与显示 DATETIME 类型。支持的范围是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)
1.2 DATE
类型可用于需要一个日期值而不需要时间部分时。MySQL 以
‘YYYY-MM-DD’
格式检索与显示DATE值。支持的范围则是
‘1000-01-01’
到
‘9999-12-31’。
2 与java数据的交互
能看出来mysql中的date和datetime区别还是挺大的,date没有保存时间。但是java中的date(java.util.Date)记录的还是挺细的,日期和时间都可以记下来,那么现在问题来了,如果想在mysql中存储日期和时间,也就是用datetime,而在数据中应该如何对应呢?
我使用hibernate测了一下,发现当把mysql数据库中设置了datetime,反向工程生成的hbm.xml文件中,使用的是timestamp,如下:
property name="Publishdate" column="publishdate" type="timestamp" not-null="false" length="10" /1
反向生成java的pojo时,生成的还是Date。
由此可见对于mysql中datetime,与java中的date,如果要使二者正确交互,中间要使用timestamp。
如果要在JAVA中直接插入MySql的datetime类型,则可以使用:
Date date = new Date();
Timestamp timeStamp = new Timestamp(date.getTime());12
再用setTimestamp()设置数据库中的“日期+时间”。
这样放入数据库的就是“yyyy-mm-dd hh:mm:ss”格式的数据。
注意,mysql中如果使用date而不是datetime是保存不下“日期+时间”的,只能保存“时间”。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流