Hot For Coding

SQLServer CONVERT()用法疑问

SQLServer CONVERT()函数是格式化时间,在做时间对比时很有用。但CONVERT()函数的第二个参数虽然是日期类型,但不接受字符串拼接的格式

什么是CONVERT()

CONVERT()函数是把日期转换为新数据类型的通用函数。此函数可以用不同的格式显示日期/时间数据。

语法

CONVERT(data_type(length),data_to_be_converted,style)

  • data_type(length) 规定目标数据类型(带有可选的长度)
  • data_to_be_converted 含有需要转换的值
  • style规定日期/时间的输出格式。

...

READ ALL

PHP系统函数eval()使用介绍

什么是eval

eval()函数把字符串按照PHP代码来运算。 该字符串必须是合法的PHP代码,且必须以分号结尾。 如果没有在代码字符串中调用return语句,则返回NULL。如果代码中存在解析错误,则eval()函数返回false

语法

eval(phpcode)

例子1

<?php
$string = "beautiful";
$time = "winter";
 
$str = 'This is a $string $time morning!';
echo $str. "<br />";
 
eval("\$str = \"$str\";");
echo $str;
?>

...

READ ALL

SQLServer读取库里所有表名

在SQLServer里要获取库中所有表名,并不能像MySQL那样直接show table就搞定

mysql> use demo
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> show tables;
+----------------+
| Tables_in_demo |
+----------------+
| a              |
| b              |
| c              |
+----------------+
3 rows in set (0.00 sec)

...

READ ALL

SQLServer巧用datediff获得时间戳

找了大半天,发现SQLServer貌似没有内建函数读取时间戳。只好自己动手写了一个

1> SELECT datediff(ss,'1970-01-01',GETDATE()) as time
2> go
time
1361988498
(1 row affected)
1>

datediff取差函数

  • ss 表示以秒为单位
  • 1970-01-01 时间戳都从这个日期计算
  • getdate() 当前时间

既读取当前时间与1970-01-01之间的秒数就是当前时间戳

datediff函数很强大,比如要算出两个日期之间的月数

...

READ ALL

Python对象的深拷贝与浅拷贝

本文内容是在《Python核心编程2》上看到的,感觉很有用便写出来,给大家参考参考!

浅拷贝

首先我们使用两种方式来拷贝对象,一种是切片,另外一种是工厂方法。然后使用id函数来看看它们的标示符

# encoding=UTF-8
 
obj = ['name',['age',18]]
a = obj[:]
b = list(obj)
for x in obj,a,b:
  print id(x)

Output:

35217032
35227912
29943304

他们的id都不同,按照正常的判断,三个不同id的对象应该都是独立的。那么我们先给他们改改名看看

...

READ ALL

SQL计算排名

通常我们读取排行榜的时候很容易,直接按照字段倒叙查询出来就好,但如果要取得某条记录的排名,需要动下脑筋,因为MySQL本身不能算出这样的需求,需要变动一下即可算出记录在表中的名次。

比如有一个表:

mysql> desc c;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(10) | NO   | PRI | NULL    | auto_increment |
| fen   | int(10) | NO   |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
 
mysql> select * from c;
+----+------+
| id | fen  |
+----+------+
|  1 |  300 |
|  2 |  200 |
|  3 |  500 |
|  4 |  600 |
|  5 |  800 |
|  6 | 1000 |
|  7 |  200 |
|  8 |  400 |
|  9 |  700 |
| 10 |  600 |
| 11 |  100 |
+----+------+
11 rows in set (0.00 sec)
 
mysql> 

...

READ ALL

Python如何声明只有一个元素的元祖

调试程序的时候,就吃过这个亏,不知道为何Python使用括号做元祖声明边界符,估计是找不到合适的符号了。中括号用来声明列表,花括号用来声明字典,元祖号只能用括号来声明了。有编程经历的朋友都清楚括号在其它语言里都是表示优先级,而Python也可以用来表示优先级,所以也就引发了以下白痴的问题

# encoding=UTF-8
 
obj = ('tuple')
 
print obj
print type(obj)
print len(obj)

Output:

tuple
<type 'str'>
5

我本来是想声明只有一个元素的元祖,而Python估计以为你只是声明一个字符串所以结果以obj变量就变成元祖了。这个错误非常隐形,不好调试

...

READ ALL

Linux防火墙指定端口范围

通常我们设置防火墙的时候都是以限定单个端口访问为目的,然而有时候这样显的有点麻烦。比如有这样一个需求,我需要700至800之间的端口都能tcp访问,总不能在iptables里添加八百条

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 700 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 701 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 702 -j ACCEPT
...
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 800 -j ACCEPT

...

READ ALL

PHP如何读取照片的Exif信息

什么是Exif

Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。

例子

读取照片的Exif在很多时候都没有必要,但相对于一些探讨摄影技术的站点,那么读取照片的Exif信息就显得尤为重要了,比如摄影论坛蜂鸟。

...

READ ALL

Linux通过进程名字杀掉进程

有时候要杀掉一个进程,但需要事先知道PID,于是现用ps -le | grep process_name找出PID,然后再通过kill命令杀掉

利用这一段可以找出nginx的PID

[root@test01 ~]# ps aux | grep -w nginx | grep -v grep | awk '{print $2}'
1279
13108
13109
30629
30650

配合kill命令可以写成一行

kill `ps aux | grep -w nginx | grep -v grep | awk '{print $2}'`

...

READ ALL