在数据库中存储星期几和时间
本文关键字:时间 数据库 存储 | 更新日期: 2023-09-27 18:12:51
仅在数据库中存储星期几和时间保存0000-00-00 00:00:00
,期望的数据应该像Monday 8:30 AM
,
CREATE DEFINER=`admin`@`192.168.21.%` PROCEDURE `AddDay`(d DATETIME)
BEGIN
INSERT INTO `tbl_days`(`day`) VALUES(d);
END
c#代码:StringBuilder sb = new StringBuilder();
sb.Append(cmbDay.Text.Trim()).Append(" ");
sb.Append(cmbHour.Text.Trim()).Append(":");
sb.Append(cmbMinutes.Text.Trim()).Append(" ");
sb.Append(cmbTime.Text.Trim());
string day = sb.ToString();
如果我将数据类型从DATETIME
更改为VARCHAR
,问题将得到解决,如何解决此问题?还是直接用VARCHAR
?
不需要将此值存储在数据库中。请记住,您总是可以在SQL中检索星期几,如:
-
使用
DAYNAME
命令:SELECT DAYNAME(day) FROM tbl_days
-
使用
DAYFORMAT
命令:SELECT DATE_FORMAT(day, '%W');
更多信息请参见MySQL日期和时间函数参考手册
[EDIT]:您可以将day
列类型声明为TIMESTAMP
,然后您的INSERT
查询可能类似于
INSERT INTO tbl_days (day) VALUES (NOW());
或具有显式输入,例如:
SET @date = CONCAT($year,'-',$month,'-',$day,'-',$hour,'-',$minute,'-',$second);
INSERT INTO tbl_days (day) VALUES (STR_TO_DATE(@date,'%Y-%c-%e-%k-%i-%s'));