0

仅在数据库保存中存储星期几和时间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

4

1 回答 1

3

无需将此值存储在数据库中。请记住,您始终可以在 SQL 中检索星期几,例如:

  • 使用DAYNAME命令:

    SELECT DAYNAME(day) FROM tbl_days

  • 使用DAYFORMAT命令:

    SELECT DATE_FORMAT(day, '%W');

有关日期和时间函数的 MySQL 参考手册的更多信息

[编辑]:您可以将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'));
于 2013-05-09T01:20:08.723 回答