如何为MySQL Datetime列设置默认值?
在SQL Server中它是getdate().什么是MySQL的等价物?如果这是一个因素,我正在使用MySQL 5.x.
我在哪里可以找到可以在Ruby on Rails 4中使用的数据类型列表?如
text string integer float date 我一直在学习新的,我很想有一个我可以轻易参考的清单.
我在表用户中有两列,registerDate and lastVisitDate它们包含日期时间数据类型.我想做以下几点.
0000-00-00 00:00:00使用的null而不是null.因为表已经存在并且有现有记录,所以我想使用Modify表.我尝试过使用下面的两段代码,但都不行.
ALTER TABLE users MODIFY registerDate datetime DEFAULT NOW()
ALTER TABLE users MODIFY registerDate datetime DEFAULT CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)
它给了我错误: ERROR 1067 (42000): Invalid default value for 'registerDate'
我可以在MySQL中将默认日期时间值设置为NOW()吗?
我搜索过这个但没有明确的答案(特别是关于后者).在什么情况下你应该使用日期时间或时间戳?
如何在DATETIME字段的日期部分创建索引?
mysql> SHOW COLUMNS FROM transactionlist;
+-------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+----------------+
| TransactionNumber | int(10) unsigned | NO | PRI | NULL | auto_increment |
| WagerId | int(11) | YES | MUL | 0 | |
| TranNum | int(11) | YES | MUL | 0 | |
| TranDateTime | datetime | NO | | NULL | |
| Amount | double | YES | | 0 | …Run Code Online (Sandbox Code Playgroud) 如何将当前UTC中的时区更改为GMT +1,正确的行是什么,我只是在phpMyAdmin SQL执行中输入它?
我的主人刚给了我这个链接http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html然后就去了所以我有点失落谢谢
关于以MySQL的TIMESTAMP格式保存日期和时间值与自定义UNSIGNED INT格式相比,我处于两难境地.这里主要考虑的是检索速度,PHP中适当的范围计算以及偶尔格式化为人类可读取的值.
每种类型所需的存储空间及其范围:
DATETIME 8 bytes '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
TIMESTAMP 4 bytes '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
UNSIGNED INT 4 bytes (Maximum Value 4294967295)
Run Code Online (Sandbox Code Playgroud)
我根本不需要DATETIME的范围.我在TIMESTAMP和UNSIGNED INT之间徘徊.
有利于UNSIGNED INT的论据:
TIMESTAMP给我的唯一好处是当我手动读取mysql表中的值并需要"看到"它们时.
是否有任何令人信服的理由使用TIMESTAMP而不是UNSIGNED INT?
可能很多程序员都想问这个问题.它是每种MySQL时间格式的冒险之源.以及您希望在应用中使用哪一个.
对我来说,我使用Unix时间戳,因为也许我觉得转换和订购记录很容易,也因为我从来没有尝试过DATETIME的事情.但无论如何,如果有人告诉我我错了,我准备改变主意.
谢谢
我在数据库中有一个具有数据类型的列DATETIME.我想使用`PreparedStatement将此列值设置为当前日期和时间.我怎么做?
我试图将datetime转换为时间戳,但mysql给我警告,并且转换后的值也是错误的.这是SQL查询
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(STR_TO_DATE(A.date_added, '%M %d %Y %h:%i%p')) WHERE A.id=B.id;
Run Code Online (Sandbox Code Playgroud)
警告
+---------+------+--------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '2011-06-11 20:29:02' for function str_to_date |
+---------+------+--------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
结果
+---------------------+---------------------+
| date_added | date_added |
+---------------------+---------------------+
| 2012-02-23 06:12:45 | 2012-12-23 19:08:33 |
+---------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下查询,但它显示时间戳字段中的00:00:00.
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(A.date_added) WHERE A.id=B.id;
Run Code Online (Sandbox Code Playgroud)