存储SQL Server 2005的日期时间
我有一个PHP脚本,通过SQL存储SQL Server 2005的日期时间
$date = '15 Jun 2011 00:00';
$sql = "INSERT INTO shows (DateStart) VALUES ('$date')";
中插入值到SQL Server 2005的表我有2个问题:
1)如何以最佳方式这个日期转换成一些SQL服务器理解?在我的系统上,默认格式是mm/dd/yyyy,但我想将日期呈现为用户可读的日期。
2)当插入一个空字符串时,DateStart值被设置为1/1/1900。如何最好地将“无效”日期转换为NULL(该列已接受NULL),以便如果$date = ""
then DateStart IS NULL
谢谢!
- 点1:使用ISO日期格式
YYYY-MM-DDTHH:MM:SS
注意:迄今为止,只有使用YYYYMMDD
监守异常的SQL Server如何解析日期 - 点2:
NULLIF(value, '')
我想在日期时间列中插入记录时的日期时间格式应始终为“YYYY-MM-DD HH:MM:SS”Default Format
gbn已经告诉。
链接的文章似乎没有包含关于使用'YYYY-MM-DD HH:MM:SS'格式的任何建议。 – 2011-06-01 09:34:12
请看看[这个答案](http://stackoverflow.com/questions/1138142/best-way-to-convert-and-validate-a-date-string/1138203#1138203),因为它显示清楚当这种格式不可靠。 – 2011-06-01 09:37:40
谢谢Andriy。这是gbn 81.9K声望的原因。我在datetime列的数据库中插入了记录,并且它没有存储T – Pankaj 2011-06-01 11:32:24
+1为ISO日期格式! – 2011-06-01 08:42:07
+1。你有解析异常日期的更多信息吗? – 2011-06-01 08:59:39
@Mark S. Rasmussen:在评论bunfight这里对两个答案(是我和@marc_s)与进一步的链接http://stackoverflow.com/questions/1138142/best-way-to-convert-and-validate-a日期字符串 – gbn 2011-06-01 09:01:31