仅在数据库保存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
?
答案 0 :(得分:3)
无需将此值存储在数据库中。请记住,您始终可以在SQL中检索星期几,例如:
使用DAYNAME
命令:
SELECT DAYNAME(day) FROM tbl_days
使用DAYFORMAT
命令:
SELECT DATE_FORMAT(day, '%W');
[编辑]:您可以将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'));